- Update architecture impact map (004) and data (005) with new modules - Add lesson-preparation usage fixes design spec - Add teacher web test post-audit report
406 lines
124 KiB
JSON
406 lines
124 KiB
JSON
[
|
||
{
|
||
"url": "/teacher/dashboard",
|
||
"category": "Dashboard",
|
||
"status": "passed",
|
||
"http_status": 200,
|
||
"final_url": "http://localhost:3000/teacher/dashboard",
|
||
"errors": [
|
||
"A tree hydrated but some attributes of the server rendered HTML didn't match the client properties. This won't be patched up. This can happen if a SSR-ed Client Component used:\n\n- A server/client branch `if (typeof window !== 'undefined')`.\n- Variable input such as `Date.now()` or `Math.random()` which changes each time it's called.\n- Date formatting in a user's locale which doesn't match the server.\n- External changing data without sending a snapshot of it along with the HTML.\n- Invalid HTML tag nesting.\n\nIt can also happen if the client has a browser extension installed which messes with the HTML before React loaded.\n\n%s%s https://react.dev/link/hydration-mismatch \n\n ...\n <SidebarProvider sidebar={<AppSidebar>}>\n <div className=\"flex h-scr...\">\n <aside>\n <div className=\"flex-1 fle...\">\n <a>\n ...\n <div className=\"flex items...\">\n <GlobalSearch>\n ...\n <MenuAnchor asChild={true} __scopeMenu={{Menu:[...], ...}}>\n <PopperAnchor __scopePopper={{Menu:[...], ...}} asChild={true} ref={null}>\n <Primitive.div asChild={true} ref={function}>\n <Primitive.div.Slot ref={function}>\n <Primitive.div.SlotClone ref={function}>\n <Primitive.button type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Primitive.button.SlotClone type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Button variant=\"ghost\" size=\"icon\" className=\"relative t...\" aria-label=\"通知\" ...>\n <button\n data-slot=\"dropdown-menu-trigger\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap round...\"}\n aria-label=\"通知\"\n type=\"button\"\n+ id=\"radix-_R_19ebn6lb_\"\n- id=\"radix-_R_55qbn6lb_\"\n aria-haspopup=\"menu\"\n aria-expanded={false}\n aria-controls={undefined}\n data-state=\"closed\"\n data-disabled={undefined}\n disabled={false}\n onPointerDown={function handleEvent}\n onKeyDown={function handleEvent}\n ref={function}\n >\n ...\n <MenuAnchor asChild={true} __scopeMenu={{Menu:[...], ...}}>\n <PopperAnchor __scopePopper={{Menu:[...], ...}} asChild={true} ref={null}>\n <Primitive.div asChild={true} ref={function}>\n <Primitive.div.Slot ref={function}>\n <Primitive.div.SlotClone ref={function}>\n <Primitive.button type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Primitive.button.SlotClone type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Button variant=\"ghost\" className=\"relative s...\" type=\"button\" id=\"radix-_R_1...\" ...>\n <button\n data-slot=\"dropdown-menu-trigger\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-...\"}\n type=\"button\"\n+ id=\"radix-_R_1pebn6lb_\"\n- id=\"radix-_R_75qbn6lb_\"\n aria-haspopup=\"menu\"\n aria-expanded={false}\n aria-controls={undefined}\n data-state=\"closed\"\n data-disabled={undefined}\n disabled={false}\n onPointerDown={function handleEvent}\n onKeyDown={function handleEvent}\n ref={function}\n >\n <main>\n <AiAssistantWidget>\n <Sheet open={false} onOpenChange={function bound dispatchSetState}>\n <Dialog data-slot=\"sheet\" open={false} onOpenChange={function bound dispatchSetState}>\n <DialogProvider scope={undefined} triggerRef={{current:null}} contentRef={{current:null}} ...>\n <SheetTrigger asChild={true}>\n <DialogTrigger data-slot=\"sheet-trigger\" asChild={true}>\n <Primitive.button type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.SlotClone type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Button type=\"button\" size=\"icon\" className=\"fixed bott...\" aria-label=\"打开 AI 助手\" ...>\n <button\n data-slot=\"sheet-trigger\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm f...\"}\n type=\"button\"\n aria-label=\"打开 AI 助手\"\n aria-haspopup=\"dialog\"\n aria-expanded={false}\n+ aria-controls=\"radix-_R_2ebn6lb_\"\n- aria-controls=\"radix-_R_9qbn6lb_\"\n data-state=\"closed\"\n onClick={function handleEvent}\n ref={function}\n >\n ...\n"
|
||
],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"url": "/teacher/textbooks",
|
||
"category": "Textbooks",
|
||
"status": "passed",
|
||
"http_status": 200,
|
||
"final_url": "http://localhost:3000/teacher/textbooks",
|
||
"errors": [
|
||
"A tree hydrated but some attributes of the server rendered HTML didn't match the client properties. This won't be patched up. This can happen if a SSR-ed Client Component used:\n\n- A server/client branch `if (typeof window !== 'undefined')`.\n- Variable input such as `Date.now()` or `Math.random()` which changes each time it's called.\n- Date formatting in a user's locale which doesn't match the server.\n- External changing data without sending a snapshot of it along with the HTML.\n- Invalid HTML tag nesting.\n\nIt can also happen if the client has a browser extension installed which messes with the HTML before React loaded.\n\n%s%s https://react.dev/link/hydration-mismatch \n\n ...\n <SidebarProvider sidebar={<AppSidebar>}>\n <div className=\"flex h-scr...\">\n <aside>\n <div className=\"flex-1 fle...\">\n <a>\n ...\n <div className=\"flex items...\">\n <GlobalSearch>\n ...\n <MenuAnchor asChild={true} __scopeMenu={{Menu:[...], ...}}>\n <PopperAnchor __scopePopper={{Menu:[...], ...}} asChild={true} ref={null}>\n <Primitive.div asChild={true} ref={function}>\n <Primitive.div.Slot ref={function}>\n <Primitive.div.SlotClone ref={function}>\n <Primitive.button type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Primitive.button.SlotClone type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Button variant=\"ghost\" size=\"icon\" className=\"relative t...\" aria-label=\"通知\" ...>\n <button\n data-slot=\"dropdown-menu-trigger\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap round...\"}\n aria-label=\"通知\"\n type=\"button\"\n+ id=\"radix-_R_19ebn6lb_\"\n- id=\"radix-_R_55qbn6lb_\"\n aria-haspopup=\"menu\"\n aria-expanded={false}\n aria-controls={undefined}\n data-state=\"closed\"\n data-disabled={undefined}\n disabled={false}\n onPointerDown={function handleEvent}\n onKeyDown={function handleEvent}\n ref={function}\n >\n ...\n <MenuAnchor asChild={true} __scopeMenu={{Menu:[...], ...}}>\n <PopperAnchor __scopePopper={{Menu:[...], ...}} asChild={true} ref={null}>\n <Primitive.div asChild={true} ref={function}>\n <Primitive.div.Slot ref={function}>\n <Primitive.div.SlotClone ref={function}>\n <Primitive.button type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Primitive.button.SlotClone type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Button variant=\"ghost\" className=\"relative s...\" type=\"button\" id=\"radix-_R_1...\" ...>\n <button\n data-slot=\"dropdown-menu-trigger\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-...\"}\n type=\"button\"\n+ id=\"radix-_R_1pebn6lb_\"\n- id=\"radix-_R_75qbn6lb_\"\n aria-haspopup=\"menu\"\n aria-expanded={false}\n aria-controls={undefined}\n data-state=\"closed\"\n data-disabled={undefined}\n disabled={false}\n onPointerDown={function handleEvent}\n onKeyDown={function handleEvent}\n ref={function}\n >\n <main>\n <AiAssistantWidget>\n <Sheet open={false} onOpenChange={function bound dispatchSetState}>\n <Dialog data-slot=\"sheet\" open={false} onOpenChange={function bound dispatchSetState}>\n <DialogProvider scope={undefined} triggerRef={{current:null}} contentRef={{current:null}} ...>\n <SheetTrigger asChild={true}>\n <DialogTrigger data-slot=\"sheet-trigger\" asChild={true}>\n <Primitive.button type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.SlotClone type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Button type=\"button\" size=\"icon\" className=\"fixed bott...\" aria-label=\"打开 AI 助手\" ...>\n <button\n data-slot=\"sheet-trigger\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm f...\"}\n type=\"button\"\n aria-label=\"打开 AI 助手\"\n aria-haspopup=\"dialog\"\n aria-expanded={false}\n+ aria-controls=\"radix-_R_2ebn6lb_\"\n- aria-controls=\"radix-_R_9qbn6lb_\"\n data-state=\"closed\"\n onClick={function handleEvent}\n ref={function}\n >\n ...\n",
|
||
"A tree hydrated but some attributes of the server rendered HTML didn't match the client properties. This won't be patched up. This can happen if a SSR-ed Client Component used:\n\n- A server/client branch `if (typeof window !== 'undefined')`.\n- Variable input such as `Date.now()` or `Math.random()` which changes each time it's called.\n- Date formatting in a user's locale which doesn't match the server.\n- External changing data without sending a snapshot of it along with the HTML.\n- Invalid HTML tag nesting.\n\nIt can also happen if the client has a browser extension installed which messes with the HTML before React loaded.\n\n%s%s https://react.dev/link/hydration-mismatch \n\n ...\n <InnerLayoutRouter url=\"/teacher/t...\" tree={[...]} params={{}} cacheNode={{lazyData:null, ...}} segmentPath={[...]} ...>\n <SegmentViewNode type=\"page\" pagePath=\"(dashboard...\">\n <SegmentTrieNode>\n <TextbooksPage>\n <div className=\"space-y-6 p-8\">\n <div className=\"flex flex-...\">\n <div>\n <TextbookFormDialog>\n <Dialog open={false} onOpenChange={function bound dispatchSetState}>\n <DialogProvider scope={undefined} triggerRef={{current:null}} contentRef={{current:null}} ...>\n <DialogTrigger asChild={true}>\n <Primitive.button type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.SlotClone type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Button type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <button\n data-slot=\"button\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-m...\"}\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={false}\n+ aria-controls=\"radix-_R_16atpesndubn6lb_\"\n- aria-controls=\"radix-_R_4pbn5ritnqbn6lb_\"\n data-state=\"closed\"\n onClick={function handleEvent}\n ref={function}\n >\n ...\n ...\n ...\n"
|
||
],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"url": "/teacher/questions",
|
||
"category": "Questions",
|
||
"status": "passed",
|
||
"http_status": 200,
|
||
"final_url": "http://localhost:3000/teacher/questions",
|
||
"errors": [],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"url": "/teacher/exams",
|
||
"category": "Exams",
|
||
"status": "passed",
|
||
"http_status": 200,
|
||
"final_url": "http://localhost:3000/teacher/exams/all",
|
||
"errors": [
|
||
"IntlError: INVALID_MESSAGE: MALFORMED_ARGUMENT (难度等级 {{level}}:{{label}})\n at getFallbackFromErrorAndNotify (http://localhost:3000/_next/static/chunks/node_modules_51f95abb._.js:3651:23)\n at translateBaseFn (http://localhost:3000/_next/static/chunks/node_modules_51f95abb._.js:3705:20)\n at translateFn (http://localhost:3000/_next/static/chunks/node_modules_51f95abb._.js:3709:24)\n at ExamDataTable.useMemo[columns] (http://localhost:3000/_next/static/chunks/src_72b8a5e4._.js:2144:66)\n at cell (http://localhost:3000/_next/static/chunks/src_72b8a5e4._.js:2003:43)\n at Object.react_stack_bottom_frame (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:14816:24)\n at renderWithHooks (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:4645:24)\n at updateFunctionComponent (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:6106:21)\n at beginWork (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:6702:24)\n at runWithFiberInDEV (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:959:74)\n at performUnitOfWork (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9556:97)\n at workLoopConcurrentByScheduler (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9552:58)\n at renderRootConcurrent (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9535:71)\n at performWorkOnRoot (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9062:150)\n at performWorkOnRootViaSchedulerTask (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:10224:9)\n at MessagePort.performWorkUntilDeadline (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_a0e4c7b4._.js:2647:64)",
|
||
"IntlError: INVALID_MESSAGE: MALFORMED_ARGUMENT (难度等级 {{level}}:{{label}})\n at getFallbackFromErrorAndNotify (http://localhost:3000/_next/static/chunks/node_modules_51f95abb._.js:3651:23)\n at translateBaseFn (http://localhost:3000/_next/static/chunks/node_modules_51f95abb._.js:3705:20)\n at translateFn (http://localhost:3000/_next/static/chunks/node_modules_51f95abb._.js:3709:24)\n at ExamDataTable.useMemo[columns] (http://localhost:3000/_next/static/chunks/src_72b8a5e4._.js:2144:66)\n at cell (http://localhost:3000/_next/static/chunks/src_72b8a5e4._.js:2003:43)\n at Object.react_stack_bottom_frame (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:14816:24)\n at renderWithHooksAgain (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:4700:24)\n at renderWithHooks (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:4651:28)\n at updateFunctionComponent (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:6106:21)\n at beginWork (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:6702:24)\n at runWithFiberInDEV (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:959:74)\n at performUnitOfWork (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9556:97)\n at workLoopConcurrentByScheduler (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9552:58)\n at renderRootConcurrent (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9535:71)\n at performWorkOnRoot (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9062:150)\n at performWorkOnRootViaSchedulerTask (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:10224:9)\n at MessagePort.performWorkUntilDeadline (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_a0e4c7b4._.js:2647:64)",
|
||
"IntlError: INVALID_MESSAGE: MALFORMED_ARGUMENT (此操作不可撤销。将永久删除考试\"{{title}}\"及所有关联数据。)\n at getFallbackFromErrorAndNotify (http://localhost:3000/_next/static/chunks/node_modules_51f95abb._.js:3651:23)\n at translateBaseFn (http://localhost:3000/_next/static/chunks/node_modules_51f95abb._.js:3705:20)\n at translateFn (http://localhost:3000/_next/static/chunks/node_modules_51f95abb._.js:3709:24)\n at ExamActions (http://localhost:3000/_next/static/chunks/src_72b8a5e4._.js:1629:47)\n at Object.react_stack_bottom_frame (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:14816:24)\n at renderWithHooks (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:4645:24)\n at updateFunctionComponent (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:6106:21)\n at beginWork (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:6702:24)\n at runWithFiberInDEV (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:959:74)\n at performUnitOfWork (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9556:97)\n at workLoopConcurrentByScheduler (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9552:58)\n at renderRootConcurrent (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9535:71)\n at performWorkOnRoot (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9062:150)\n at performWorkOnRootViaSchedulerTask (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:10224:9)\n at MessagePort.performWorkUntilDeadline (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_a0e4c7b4._.js:2647:64)",
|
||
"IntlError: INVALID_MESSAGE: MALFORMED_ARGUMENT (此操作不可撤销。将永久删除考试\"{{title}}\"及所有关联数据。)\n at getFallbackFromErrorAndNotify (http://localhost:3000/_next/static/chunks/node_modules_51f95abb._.js:3651:23)\n at translateBaseFn (http://localhost:3000/_next/static/chunks/node_modules_51f95abb._.js:3705:20)\n at translateFn (http://localhost:3000/_next/static/chunks/node_modules_51f95abb._.js:3709:24)\n at ExamActions (http://localhost:3000/_next/static/chunks/src_72b8a5e4._.js:1629:47)\n at Object.react_stack_bottom_frame (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:14816:24)\n at renderWithHooksAgain (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:4700:24)\n at renderWithHooks (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:4651:28)\n at updateFunctionComponent (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:6106:21)\n at beginWork (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:6702:24)\n at runWithFiberInDEV (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:959:74)\n at performUnitOfWork (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9556:97)\n at workLoopConcurrentByScheduler (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9552:58)\n at renderRootConcurrent (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9535:71)\n at performWorkOnRoot (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9062:150)\n at performWorkOnRootViaSchedulerTask (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:10224:9)\n at MessagePort.performWorkUntilDeadline (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_a0e4c7b4._.js:2647:64)",
|
||
"IntlError: INVALID_MESSAGE: MALFORMED_ARGUMENT (难度等级 {{level}}:{{label}})\n at getFallbackFromErrorAndNotify (http://localhost:3000/_next/static/chunks/node_modules_51f95abb._.js:3651:23)\n at translateBaseFn (http://localhost:3000/_next/static/chunks/node_modules_51f95abb._.js:3705:20)\n at translateFn (http://localhost:3000/_next/static/chunks/node_modules_51f95abb._.js:3709:24)\n at ExamDataTable.useMemo[columns] (http://localhost:3000/_next/static/chunks/src_72b8a5e4._.js:2144:66)\n at cell (http://localhost:3000/_next/static/chunks/src_72b8a5e4._.js:2003:43)\n at Object.react_stack_bottom_frame (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:14816:24)\n at renderWithHooks (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:4645:24)\n at updateFunctionComponent (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:6106:21)\n at beginWork (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:6702:24)\n at runWithFiberInDEV (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:959:74)\n at performUnitOfWork (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9556:97)\n at workLoopConcurrentByScheduler (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9552:58)\n at renderRootConcurrent (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9535:71)\n at performWorkOnRoot (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9062:150)\n at performWorkOnRootViaSchedulerTask (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:10224:9)\n at MessagePort.performWorkUntilDeadline (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_a0e4c7b4._.js:2647:64)"
|
||
],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"url": "/teacher/exams/all",
|
||
"category": "Exams",
|
||
"status": "passed",
|
||
"http_status": 200,
|
||
"final_url": "http://localhost:3000/teacher/exams/all",
|
||
"errors": [
|
||
"A tree hydrated but some attributes of the server rendered HTML didn't match the client properties. This won't be patched up. This can happen if a SSR-ed Client Component used:\n\n- A server/client branch `if (typeof window !== 'undefined')`.\n- Variable input such as `Date.now()` or `Math.random()` which changes each time it's called.\n- Date formatting in a user's locale which doesn't match the server.\n- External changing data without sending a snapshot of it along with the HTML.\n- Invalid HTML tag nesting.\n\nIt can also happen if the client has a browser extension installed which messes with the HTML before React loaded.\n\n%s%s https://react.dev/link/hydration-mismatch \n\n ...\n <SidebarProvider sidebar={<AppSidebar>}>\n <div className=\"flex h-scr...\">\n <aside>\n <div className=\"flex-1 fle...\">\n <a>\n ...\n <div className=\"flex items...\">\n <GlobalSearch>\n ...\n <MenuAnchor asChild={true} __scopeMenu={{Menu:[...], ...}}>\n <PopperAnchor __scopePopper={{Menu:[...], ...}} asChild={true} ref={null}>\n <Primitive.div asChild={true} ref={function}>\n <Primitive.div.Slot ref={function}>\n <Primitive.div.SlotClone ref={function}>\n <Primitive.button type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Primitive.button.SlotClone type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Button variant=\"ghost\" size=\"icon\" className=\"relative t...\" aria-label=\"通知\" ...>\n <button\n data-slot=\"dropdown-menu-trigger\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap round...\"}\n aria-label=\"通知\"\n type=\"button\"\n+ id=\"radix-_R_19ebn6lb_\"\n- id=\"radix-_R_55qbn6lb_\"\n aria-haspopup=\"menu\"\n aria-expanded={false}\n aria-controls={undefined}\n data-state=\"closed\"\n data-disabled={undefined}\n disabled={false}\n onPointerDown={function handleEvent}\n onKeyDown={function handleEvent}\n ref={function}\n >\n ...\n <MenuAnchor asChild={true} __scopeMenu={{Menu:[...], ...}}>\n <PopperAnchor __scopePopper={{Menu:[...], ...}} asChild={true} ref={null}>\n <Primitive.div asChild={true} ref={function}>\n <Primitive.div.Slot ref={function}>\n <Primitive.div.SlotClone ref={function}>\n <Primitive.button type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Primitive.button.SlotClone type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Button variant=\"ghost\" className=\"relative s...\" type=\"button\" id=\"radix-_R_1...\" ...>\n <button\n data-slot=\"dropdown-menu-trigger\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-...\"}\n type=\"button\"\n+ id=\"radix-_R_1pebn6lb_\"\n- id=\"radix-_R_75qbn6lb_\"\n aria-haspopup=\"menu\"\n aria-expanded={false}\n aria-controls={undefined}\n data-state=\"closed\"\n data-disabled={undefined}\n disabled={false}\n onPointerDown={function handleEvent}\n onKeyDown={function handleEvent}\n ref={function}\n >\n <main>\n <AiAssistantWidget>\n <Sheet open={false} onOpenChange={function bound dispatchSetState}>\n <Dialog data-slot=\"sheet\" open={false} onOpenChange={function bound dispatchSetState}>\n <DialogProvider scope={undefined} triggerRef={{current:null}} contentRef={{current:null}} ...>\n <SheetTrigger asChild={true}>\n <DialogTrigger data-slot=\"sheet-trigger\" asChild={true}>\n <Primitive.button type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.SlotClone type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Button type=\"button\" size=\"icon\" className=\"fixed bott...\" aria-label=\"打开 AI 助手\" ...>\n <button\n data-slot=\"sheet-trigger\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm f...\"}\n type=\"button\"\n aria-label=\"打开 AI 助手\"\n aria-haspopup=\"dialog\"\n aria-expanded={false}\n+ aria-controls=\"radix-_R_2ebn6lb_\"\n- aria-controls=\"radix-_R_9qbn6lb_\"\n data-state=\"closed\"\n onClick={function handleEvent}\n ref={function}\n >\n ...\n",
|
||
"IntlError: INVALID_MESSAGE: MALFORMED_ARGUMENT (难度等级 {{level}}:{{label}})\n at getFallbackFromErrorAndNotify (http://localhost:3000/_next/static/chunks/node_modules_51f95abb._.js:3651:23)\n at translateBaseFn (http://localhost:3000/_next/static/chunks/node_modules_51f95abb._.js:3705:20)\n at translateFn (http://localhost:3000/_next/static/chunks/node_modules_51f95abb._.js:3709:24)\n at ExamDataTable.useMemo[columns] (http://localhost:3000/_next/static/chunks/src_72b8a5e4._.js:2144:66)\n at cell (http://localhost:3000/_next/static/chunks/src_72b8a5e4._.js:2003:43)\n at Object.react_stack_bottom_frame (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:14816:24)\n at renderWithHooks (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:4645:24)\n at updateFunctionComponent (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:6106:21)\n at beginWork (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:6702:24)\n at runWithFiberInDEV (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:959:74)\n at performUnitOfWork (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9556:97)\n at workLoopConcurrentByScheduler (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9552:58)\n at renderRootConcurrent (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9535:71)\n at performWorkOnRoot (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9062:150)\n at performWorkOnRootViaSchedulerTask (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:10224:9)\n at MessagePort.performWorkUntilDeadline (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_a0e4c7b4._.js:2647:64)",
|
||
"IntlError: INVALID_MESSAGE: MALFORMED_ARGUMENT (难度等级 {{level}}:{{label}})\n at getFallbackFromErrorAndNotify (http://localhost:3000/_next/static/chunks/node_modules_51f95abb._.js:3651:23)\n at translateBaseFn (http://localhost:3000/_next/static/chunks/node_modules_51f95abb._.js:3705:20)\n at translateFn (http://localhost:3000/_next/static/chunks/node_modules_51f95abb._.js:3709:24)\n at ExamDataTable.useMemo[columns] (http://localhost:3000/_next/static/chunks/src_72b8a5e4._.js:2144:66)\n at cell (http://localhost:3000/_next/static/chunks/src_72b8a5e4._.js:2003:43)\n at Object.react_stack_bottom_frame (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:14816:24)\n at renderWithHooksAgain (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:4700:24)\n at renderWithHooks (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:4651:28)\n at updateFunctionComponent (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:6106:21)\n at beginWork (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:6702:24)\n at runWithFiberInDEV (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:959:74)\n at performUnitOfWork (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9556:97)\n at workLoopConcurrentByScheduler (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9552:58)\n at renderRootConcurrent (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9535:71)\n at performWorkOnRoot (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9062:150)\n at performWorkOnRootViaSchedulerTask (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:10224:9)\n at MessagePort.performWorkUntilDeadline (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_a0e4c7b4._.js:2647:64)",
|
||
"IntlError: INVALID_MESSAGE: MALFORMED_ARGUMENT (此操作不可撤销。将永久删除考试\"{{title}}\"及所有关联数据。)\n at getFallbackFromErrorAndNotify (http://localhost:3000/_next/static/chunks/node_modules_51f95abb._.js:3651:23)\n at translateBaseFn (http://localhost:3000/_next/static/chunks/node_modules_51f95abb._.js:3705:20)\n at translateFn (http://localhost:3000/_next/static/chunks/node_modules_51f95abb._.js:3709:24)\n at ExamActions (http://localhost:3000/_next/static/chunks/src_72b8a5e4._.js:1629:47)\n at Object.react_stack_bottom_frame (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:14816:24)\n at renderWithHooks (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:4645:24)\n at updateFunctionComponent (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:6106:21)\n at beginWork (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:6702:24)\n at runWithFiberInDEV (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:959:74)\n at performUnitOfWork (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9556:97)\n at workLoopConcurrentByScheduler (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9552:58)\n at renderRootConcurrent (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9535:71)\n at performWorkOnRoot (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9062:150)\n at performWorkOnRootViaSchedulerTask (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:10224:9)\n at MessagePort.performWorkUntilDeadline (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_a0e4c7b4._.js:2647:64)",
|
||
"IntlError: INVALID_MESSAGE: MALFORMED_ARGUMENT (此操作不可撤销。将永久删除考试\"{{title}}\"及所有关联数据。)\n at getFallbackFromErrorAndNotify (http://localhost:3000/_next/static/chunks/node_modules_51f95abb._.js:3651:23)\n at translateBaseFn (http://localhost:3000/_next/static/chunks/node_modules_51f95abb._.js:3705:20)\n at translateFn (http://localhost:3000/_next/static/chunks/node_modules_51f95abb._.js:3709:24)\n at ExamActions (http://localhost:3000/_next/static/chunks/src_72b8a5e4._.js:1629:47)\n at Object.react_stack_bottom_frame (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:14816:24)\n at renderWithHooksAgain (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:4700:24)\n at renderWithHooks (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:4651:28)\n at updateFunctionComponent (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:6106:21)\n at beginWork (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:6702:24)\n at runWithFiberInDEV (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:959:74)\n at performUnitOfWork (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9556:97)\n at workLoopConcurrentByScheduler (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9552:58)\n at renderRootConcurrent (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9535:71)\n at performWorkOnRoot (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9062:150)\n at performWorkOnRootViaSchedulerTask (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:10224:9)\n at MessagePort.performWorkUntilDeadline (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_a0e4c7b4._.js:2647:64)"
|
||
],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"url": "/teacher/exams/create",
|
||
"category": "Exams",
|
||
"status": "passed",
|
||
"http_status": 200,
|
||
"final_url": "http://localhost:3000/teacher/exams/create",
|
||
"errors": [],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"url": "/teacher/homework",
|
||
"category": "Homework",
|
||
"status": "passed",
|
||
"http_status": 200,
|
||
"final_url": "http://localhost:3000/teacher/homework/assignments",
|
||
"errors": [
|
||
"A tree hydrated but some attributes of the server rendered HTML didn't match the client properties. This won't be patched up. This can happen if a SSR-ed Client Component used:\n\n- A server/client branch `if (typeof window !== 'undefined')`.\n- Variable input such as `Date.now()` or `Math.random()` which changes each time it's called.\n- Date formatting in a user's locale which doesn't match the server.\n- External changing data without sending a snapshot of it along with the HTML.\n- Invalid HTML tag nesting.\n\nIt can also happen if the client has a browser extension installed which messes with the HTML before React loaded.\n\n%s%s https://react.dev/link/hydration-mismatch \n\n ...\n <SidebarProvider sidebar={<AppSidebar>}>\n <div className=\"flex h-scr...\">\n <aside>\n <div className=\"flex-1 fle...\">\n <a>\n ...\n <div className=\"flex items...\">\n <GlobalSearch>\n ...\n <MenuAnchor asChild={true} __scopeMenu={{Menu:[...], ...}}>\n <PopperAnchor __scopePopper={{Menu:[...], ...}} asChild={true} ref={null}>\n <Primitive.div asChild={true} ref={function}>\n <Primitive.div.Slot ref={function}>\n <Primitive.div.SlotClone ref={function}>\n <Primitive.button type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Primitive.button.SlotClone type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Button variant=\"ghost\" size=\"icon\" className=\"relative t...\" aria-label=\"通知\" ...>\n <button\n data-slot=\"dropdown-menu-trigger\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap round...\"}\n aria-label=\"通知\"\n type=\"button\"\n+ id=\"radix-_R_19ebn6lb_\"\n- id=\"radix-_R_55qbn6lb_\"\n aria-haspopup=\"menu\"\n aria-expanded={false}\n aria-controls={undefined}\n data-state=\"closed\"\n data-disabled={undefined}\n disabled={false}\n onPointerDown={function handleEvent}\n onKeyDown={function handleEvent}\n ref={function}\n >\n ...\n <MenuAnchor asChild={true} __scopeMenu={{Menu:[...], ...}}>\n <PopperAnchor __scopePopper={{Menu:[...], ...}} asChild={true} ref={null}>\n <Primitive.div asChild={true} ref={function}>\n <Primitive.div.Slot ref={function}>\n <Primitive.div.SlotClone ref={function}>\n <Primitive.button type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Primitive.button.SlotClone type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Button variant=\"ghost\" className=\"relative s...\" type=\"button\" id=\"radix-_R_1...\" ...>\n <button\n data-slot=\"dropdown-menu-trigger\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-...\"}\n type=\"button\"\n+ id=\"radix-_R_1pebn6lb_\"\n- id=\"radix-_R_75qbn6lb_\"\n aria-haspopup=\"menu\"\n aria-expanded={false}\n aria-controls={undefined}\n data-state=\"closed\"\n data-disabled={undefined}\n disabled={false}\n onPointerDown={function handleEvent}\n onKeyDown={function handleEvent}\n ref={function}\n >\n <main>\n <AiAssistantWidget>\n <Sheet open={false} onOpenChange={function bound dispatchSetState}>\n <Dialog data-slot=\"sheet\" open={false} onOpenChange={function bound dispatchSetState}>\n <DialogProvider scope={undefined} triggerRef={{current:null}} contentRef={{current:null}} ...>\n <SheetTrigger asChild={true}>\n <DialogTrigger data-slot=\"sheet-trigger\" asChild={true}>\n <Primitive.button type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.SlotClone type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Button type=\"button\" size=\"icon\" className=\"fixed bott...\" aria-label=\"打开 AI 助手\" ...>\n <button\n data-slot=\"sheet-trigger\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm f...\"}\n type=\"button\"\n aria-label=\"打开 AI 助手\"\n aria-haspopup=\"dialog\"\n aria-expanded={false}\n+ aria-controls=\"radix-_R_2ebn6lb_\"\n- aria-controls=\"radix-_R_9qbn6lb_\"\n data-state=\"closed\"\n onClick={function handleEvent}\n ref={function}\n >\n ...\n"
|
||
],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"url": "/teacher/homework/assignments",
|
||
"category": "Homework",
|
||
"status": "passed",
|
||
"http_status": 200,
|
||
"final_url": "http://localhost:3000/teacher/homework/assignments",
|
||
"errors": [],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"url": "/teacher/homework/assignments/create",
|
||
"category": "Homework",
|
||
"status": "passed",
|
||
"http_status": 200,
|
||
"final_url": "http://localhost:3000/teacher/homework/assignments/create",
|
||
"errors": [],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"url": "/teacher/homework/submissions",
|
||
"category": "Homework",
|
||
"status": "passed",
|
||
"http_status": 200,
|
||
"final_url": "http://localhost:3000/teacher/homework/submissions",
|
||
"errors": [],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"url": "/teacher/grades",
|
||
"category": "Grades",
|
||
"status": "passed",
|
||
"http_status": 200,
|
||
"final_url": "http://localhost:3000/teacher/grades",
|
||
"errors": [],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"url": "/teacher/grades/entry",
|
||
"category": "Grades",
|
||
"status": "passed",
|
||
"http_status": 200,
|
||
"final_url": "http://localhost:3000/teacher/grades/entry",
|
||
"errors": [],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"url": "/teacher/grades/stats",
|
||
"category": "Grades",
|
||
"status": "passed",
|
||
"http_status": 200,
|
||
"final_url": "http://localhost:3000/teacher/grades/stats",
|
||
"errors": [
|
||
"%c%s%c background: #e6e6e6;background: light-dark(rgba(0,0,0,0.1), rgba(255,255,255,0.25));color: #000000;color: light-dark(#000000, #ffffff);border-radius: 2px Server Error: MISSING_MESSAGE: Could not resolve `grades.classReport.caption` in messages for locale `zh-CN`.\n at ClassGradeReport (about://React/Server/E:%5CDesktop%5CCICD%5C.next%5Cdev%5Cserver%5Cchunks%5Cssr%5C%5Broot-of-the-server%5D__d43d5e3d._.js?102:604:51)\n at resolveErrorDev (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:1882:106)\n at getOutlinedModel (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:1434:28)\n at parseModelString (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:1548:50)\n at Object.<anonymous> (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:2475:51)\n at JSON.parse (<anonymous>)\n at initializeModelChunk (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:1053:30)\n at getOutlinedModel (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:1372:17)\n at parseModelString (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:1602:50)\n at Array.<anonymous> (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:2475:51)\n at JSON.parse (<anonymous>)\n at initializeModelChunk (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:1053:30)\n at resolveConsoleEntry (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:2008:96)\n at processFullStringRow (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:2409:17)\n at processFullBinaryRow (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:2349:9)\n at processBinaryChunk (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:2459:98)\n at progress (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:2628:13)",
|
||
"%c%s%c E:\\Desktop\\CICD\\.next\\dev\\server\\chunks\\ssr\\node_modules_d30fabce._.js: Invalid source map. Only conformant source maps can be used to find the original code. Cause: Error: sourceMapURL could not be parsed background: #e6e6e6;background: light-dark(rgba(0,0,0,0.1), rgba(255,255,255,0.25));color: #000000;color: light-dark(#000000, #ffffff);border-radius: 2px Server ",
|
||
"%c%s%c E:\\Desktop\\CICD\\.next\\dev\\server\\chunks\\ssr\\[root-of-the-server]__d43d5e3d._.js: Invalid source map. Only conformant source maps can be used to find the original code. Cause: Error: sourceMapURL could not be parsed background: #e6e6e6;background: light-dark(rgba(0,0,0,0.1), rgba(255,255,255,0.25));color: #000000;color: light-dark(#000000, #ffffff);border-radius: 2px Server "
|
||
],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"url": "/teacher/grades/analytics",
|
||
"category": "Grades",
|
||
"status": "passed",
|
||
"http_status": 200,
|
||
"final_url": "http://localhost:3000/teacher/grades/analytics",
|
||
"errors": [],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"url": "/teacher/classes",
|
||
"category": "Classes",
|
||
"status": "passed",
|
||
"http_status": 200,
|
||
"final_url": "http://localhost:3000/teacher/classes/my",
|
||
"errors": [],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"url": "/teacher/classes/my",
|
||
"category": "Classes",
|
||
"status": "passed",
|
||
"http_status": 200,
|
||
"final_url": "http://localhost:3000/teacher/classes/my",
|
||
"errors": [],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"url": "/teacher/classes/students",
|
||
"category": "Classes",
|
||
"status": "passed",
|
||
"http_status": 200,
|
||
"final_url": "http://localhost:3000/teacher/classes/students",
|
||
"errors": [],
|
||
"warnings": [
|
||
"Error text: 20",
|
||
"Error text: 42",
|
||
"Error text: 42"
|
||
]
|
||
},
|
||
{
|
||
"url": "/teacher/classes/schedule",
|
||
"category": "Classes",
|
||
"status": "passed",
|
||
"http_status": 200,
|
||
"final_url": "http://localhost:3000/teacher/classes/schedule",
|
||
"errors": [],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"url": "/teacher/course-plans",
|
||
"category": "Course Plans",
|
||
"status": "passed",
|
||
"http_status": 200,
|
||
"final_url": "http://localhost:3000/teacher/course-plans",
|
||
"errors": [],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"url": "/teacher/lesson-plans",
|
||
"category": "Lesson Plans",
|
||
"status": "passed",
|
||
"http_status": 200,
|
||
"final_url": "http://localhost:3000/teacher/lesson-plans",
|
||
"errors": [
|
||
"A tree hydrated but some attributes of the server rendered HTML didn't match the client properties. This won't be patched up. This can happen if a SSR-ed Client Component used:\n\n- A server/client branch `if (typeof window !== 'undefined')`.\n- Variable input such as `Date.now()` or `Math.random()` which changes each time it's called.\n- Date formatting in a user's locale which doesn't match the server.\n- External changing data without sending a snapshot of it along with the HTML.\n- Invalid HTML tag nesting.\n\nIt can also happen if the client has a browser extension installed which messes with the HTML before React loaded.\n\n%s%s https://react.dev/link/hydration-mismatch \n\n ...\n <SidebarProvider sidebar={<AppSidebar>}>\n <div className=\"flex h-scr...\">\n <aside>\n <div className=\"flex-1 fle...\">\n <a>\n ...\n <div className=\"flex items...\">\n <GlobalSearch>\n ...\n <MenuAnchor asChild={true} __scopeMenu={{Menu:[...], ...}}>\n <PopperAnchor __scopePopper={{Menu:[...], ...}} asChild={true} ref={null}>\n <Primitive.div asChild={true} ref={function}>\n <Primitive.div.Slot ref={function}>\n <Primitive.div.SlotClone ref={function}>\n <Primitive.button type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Primitive.button.SlotClone type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Button variant=\"ghost\" size=\"icon\" className=\"relative t...\" aria-label=\"通知\" ...>\n <button\n data-slot=\"dropdown-menu-trigger\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap round...\"}\n aria-label=\"通知\"\n type=\"button\"\n+ id=\"radix-_R_19ebn6lb_\"\n- id=\"radix-_R_55qbn6lb_\"\n aria-haspopup=\"menu\"\n aria-expanded={false}\n aria-controls={undefined}\n data-state=\"closed\"\n data-disabled={undefined}\n disabled={false}\n onPointerDown={function handleEvent}\n onKeyDown={function handleEvent}\n ref={function}\n >\n ...\n <MenuAnchor asChild={true} __scopeMenu={{Menu:[...], ...}}>\n <PopperAnchor __scopePopper={{Menu:[...], ...}} asChild={true} ref={null}>\n <Primitive.div asChild={true} ref={function}>\n <Primitive.div.Slot ref={function}>\n <Primitive.div.SlotClone ref={function}>\n <Primitive.button type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Primitive.button.SlotClone type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Button variant=\"ghost\" className=\"relative s...\" type=\"button\" id=\"radix-_R_1...\" ...>\n <button\n data-slot=\"dropdown-menu-trigger\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-...\"}\n type=\"button\"\n+ id=\"radix-_R_1pebn6lb_\"\n- id=\"radix-_R_75qbn6lb_\"\n aria-haspopup=\"menu\"\n aria-expanded={false}\n aria-controls={undefined}\n data-state=\"closed\"\n data-disabled={undefined}\n disabled={false}\n onPointerDown={function handleEvent}\n onKeyDown={function handleEvent}\n ref={function}\n >\n <main>\n <AiAssistantWidget>\n <Sheet open={false} onOpenChange={function bound dispatchSetState}>\n <Dialog data-slot=\"sheet\" open={false} onOpenChange={function bound dispatchSetState}>\n <DialogProvider scope={undefined} triggerRef={{current:null}} contentRef={{current:null}} ...>\n <SheetTrigger asChild={true}>\n <DialogTrigger data-slot=\"sheet-trigger\" asChild={true}>\n <Primitive.button type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.SlotClone type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Button type=\"button\" size=\"icon\" className=\"fixed bott...\" aria-label=\"打开 AI 助手\" ...>\n <button\n data-slot=\"sheet-trigger\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm f...\"}\n type=\"button\"\n aria-label=\"打开 AI 助手\"\n aria-haspopup=\"dialog\"\n aria-expanded={false}\n+ aria-controls=\"radix-_R_2ebn6lb_\"\n- aria-controls=\"radix-_R_9qbn6lb_\"\n data-state=\"closed\"\n onClick={function handleEvent}\n ref={function}\n >\n ...\n",
|
||
"A tree hydrated but some attributes of the server rendered HTML didn't match the client properties. This won't be patched up. This can happen if a SSR-ed Client Component used:\n\n- A server/client branch `if (typeof window !== 'undefined')`.\n- Variable input such as `Date.now()` or `Math.random()` which changes each time it's called.\n- Date formatting in a user's locale which doesn't match the server.\n- External changing data without sending a snapshot of it along with the HTML.\n- Invalid HTML tag nesting.\n\nIt can also happen if the client has a browser extension installed which messes with the HTML before React loaded.\n\n%s%s https://react.dev/link/hydration-mismatch \n\n ...\n <div className=\"space-y-4\">\n <LessonPlanFilters>\n <div className=\"grid grid-...\">\n <LessonPlanCard plan={{id:\"o20j6e...\", ...}} viewMode=\"teacher\">\n <div className=\"border bor...\">\n <LinkComponent>\n <div>\n <div>\n <div>\n <div className=\"flex gap-2...\">\n <Button>\n <AlertDialog>\n <Dialog __scopeDialog={{Dialog:[...]}} modal={true}>\n <DialogProvider scope={{Dialog:[...]}} triggerRef={{current:null}} contentRef={{current:null}} ...>\n <AlertDialogTrigger asChild={true}>\n <DialogTrigger __scopeDialog={{Dialog:[...]}} asChild={true} ref={null}>\n <Primitive.button type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.SlotClone type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Button variant=\"outline\" size=\"sm\" type=\"button\" aria-haspopup=\"dialog\" ...>\n <button\n data-slot=\"button\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm...\"}\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={false}\n+ aria-controls=\"radix-_R_1a3qatpesndubn6lb_\"\n- aria-controls=\"radix-_R_58f9bn5ritnqbn6lb_\"\n data-state=\"closed\"\n onClick={function handleEvent}\n ref={function}\n >\n+ 归档\n ...\n <LessonPlanCard plan={{id:\"p54vt8...\", ...}} viewMode=\"teacher\">\n <div className=\"border bor...\">\n <LinkComponent>\n <div>\n <div>\n <div>\n <div className=\"flex gap-2...\">\n <Button>\n <AlertDialog>\n <Dialog __scopeDialog={{Dialog:[...]}} modal={true}>\n <DialogProvider scope={{Dialog:[...]}} triggerRef={{current:null}} contentRef={{current:null}} ...>\n <AlertDialogTrigger asChild={true}>\n <DialogTrigger __scopeDialog={{Dialog:[...]}} asChild={true} ref={null}>\n <Primitive.button type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.SlotClone type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Button variant=\"outline\" size=\"sm\" type=\"button\" aria-haspopup=\"dialog\" ...>\n <button\n data-slot=\"button\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm...\"}\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={false}\n+ aria-controls=\"radix-_R_1a5qatpesndubn6lb_\"\n- aria-controls=\"radix-_R_58n9bn5ritnqbn6lb_\"\n data-state=\"closed\"\n onClick={function handleEvent}\n ref={function}\n >\n+ 归档\n ...\n <LessonPlanCard plan={{id:\"ps8rrh...\", ...}} viewMode=\"teacher\">\n <div className=\"border bor...\">\n <LinkComponent>\n <div>\n <div>\n <div>\n <div className=\"flex gap-2...\">\n <Button>\n <AlertDialog>\n <Dialog __scopeDialog={{Dialog:[...]}} modal={true}>\n <DialogProvider scope={{Dialog:[...]}} triggerRef={{current:null}} contentRef={{current:null}} ...>\n <AlertDialogTrigger asChild={true}>\n <DialogTrigger __scopeDialog={{Dialog:[...]}} asChild={true} ref={null}>\n <Primitive.button type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.SlotClone type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Button variant=\"outline\" size=\"sm\" type=\"button\" aria-haspopup=\"dialog\" ...>\n <button\n data-slot=\"button\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm...\"}\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={false}\n+ aria-controls=\"radix-_R_1a7qatpesndubn6lb_\"\n- aria-controls=\"radix-_R_58v9bn5ritnqbn6lb_\"\n data-state=\"closed\"\n onClick={function handleEvent}\n ref={function}\n >\n+ 归档\n ...\n <LessonPlanCard plan={{id:\"zpeysv...\", ...}} viewMode=\"teacher\">\n <div className=\"border bor...\">\n <LinkComponent>\n <div>\n <div>\n <div>\n <div className=\"flex gap-2...\">\n <Button>\n <AlertDialog>\n <Dialog __scopeDialog={{Dialog:[...]}} modal={true}>\n <DialogProvider scope={{Dialog:[...]}} triggerRef={{current:null}} contentRef={{current:null}} ...>\n <AlertDialogTrigger asChild={true}>\n <DialogTrigger __scopeDialog={{Dialog:[...]}} asChild={true} ref={null}>\n <Primitive.button type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.SlotClone type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Button variant=\"outline\" size=\"sm\" type=\"button\" aria-haspopup=\"dialog\" ...>\n <button\n data-slot=\"button\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm...\"}\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={false}\n+ aria-controls=\"radix-_R_1a9qatpesndubn6lb_\"\n- aria-controls=\"radix-_R_5979bn5ritnqbn6lb_\"\n data-state=\"closed\"\n onClick={function handleEvent}\n ref={function}\n >\n+ 归档\n ...\n <LessonPlanCard plan={{id:\"gpqmy3...\", ...}} viewMode=\"teacher\">\n <div className=\"border bor...\">\n <LinkComponent>\n <div>\n <div>\n <div>\n <div className=\"flex gap-2...\">\n <Button>\n <AlertDialog>\n <Dialog __scopeDialog={{Dialog:[...]}} modal={true}>\n <DialogProvider scope={{Dialog:[...]}} triggerRef={{current:null}} contentRef={{current:null}} ...>\n <AlertDialogTrigger asChild={true}>\n <DialogTrigger __scopeDialog={{Dialog:[...]}} asChild={true} ref={null}>\n <Primitive.button type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.SlotClone type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Button variant=\"outline\" size=\"sm\" type=\"button\" aria-haspopup=\"dialog\" ...>\n <button\n data-slot=\"button\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm...\"}\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={false}\n+ aria-controls=\"radix-_R_1abqatpesndubn6lb_\"\n- aria-controls=\"radix-_R_59f9bn5ritnqbn6lb_\"\n data-state=\"closed\"\n onClick={function handleEvent}\n ref={function}\n >\n+ 归档\n ...\n <LessonPlanCard plan={{id:\"b89r2i...\", ...}} viewMode=\"teacher\">\n <div className=\"border bor...\">\n <LinkComponent>\n <div>\n <div>\n <div>\n <div className=\"flex gap-2...\">\n <Button>\n <AlertDialog>\n <Dialog __scopeDialog={{Dialog:[...]}} modal={true}>\n <DialogProvider scope={{Dialog:[...]}} triggerRef={{current:null}} contentRef={{current:null}} ...>\n <AlertDialogTrigger asChild={true}>\n <DialogTrigger __scopeDialog={{Dialog:[...]}} asChild={true} ref={null}>\n <Primitive.button type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.SlotClone type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Button variant=\"outline\" size=\"sm\" type=\"button\" aria-haspopup=\"dialog\" ...>\n <button\n data-slot=\"button\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm...\"}\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={false}\n+ aria-controls=\"radix-_R_1adqatpesndubn6lb_\"\n- aria-controls=\"radix-_R_59n9bn5ritnqbn6lb_\"\n data-state=\"closed\"\n onClick={function handleEvent}\n ref={function}\n >\n+ 归档\n ...\n <LessonPlanCard plan={{id:\"rp33u1...\", ...}} viewMode=\"teacher\">\n <div className=\"border bor...\">\n <LinkComponent>\n <div>\n <div>\n <div>\n <div className=\"flex gap-2...\">\n <Button>\n <AlertDialog>\n <Dialog __scopeDialog={{Dialog:[...]}} modal={true}>\n <DialogProvider scope={{Dialog:[...]}} triggerRef={{current:null}} contentRef={{current:null}} ...>\n <AlertDialogTrigger asChild={true}>\n <DialogTrigger __scopeDialog={{Dialog:[...]}} asChild={true} ref={null}>\n <Primitive.button type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.SlotClone type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Button variant=\"outline\" size=\"sm\" type=\"button\" aria-haspopup=\"dialog\" ...>\n <button\n data-slot=\"button\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm...\"}\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={false}\n+ aria-controls=\"radix-_R_1afqatpesndubn6lb_\"\n- aria-controls=\"radix-_R_59v9bn5ritnqbn6lb_\"\n data-state=\"closed\"\n onClick={function handleEvent}\n ref={function}\n >\n+ 归档\n ...\n <LessonPlanCard plan={{id:\"w4a90p...\", ...}} viewMode=\"teacher\">\n <div className=\"border bor...\">\n <LinkComponent>\n <div>\n <div>\n <div>\n <div className=\"flex gap-2...\">\n <Button>\n <AlertDialog>\n <Dialog __scopeDialog={{Dialog:[...]}} modal={true}>\n <DialogProvider scope={{Dialog:[...]}} triggerRef={{current:null}} contentRef={{current:null}} ...>\n <AlertDialogTrigger asChild={true}>\n <DialogTrigger __scopeDialog={{Dialog:[...]}} asChild={true} ref={null}>\n <Primitive.button type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.SlotClone type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Button variant=\"outline\" size=\"sm\" type=\"button\" aria-haspopup=\"dialog\" ...>\n <button\n data-slot=\"button\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm...\"}\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={false}\n+ aria-controls=\"radix-_R_1ahqatpesndubn6lb_\"\n- aria-controls=\"radix-_R_5a79bn5ritnqbn6lb_\"\n data-state=\"closed\"\n onClick={function handleEvent}\n ref={function}\n >\n+ 归档\n ...\n <LessonPlanCard plan={{id:\"dt0qjt...\", ...}} viewMode=\"teacher\">\n <div className=\"border bor...\">\n <LinkComponent>\n <div>\n <div>\n <div>\n <div className=\"flex gap-2...\">\n <Button>\n <AlertDialog>\n <Dialog __scopeDialog={{Dialog:[...]}} modal={true}>\n <DialogProvider scope={{Dialog:[...]}} triggerRef={{current:null}} contentRef={{current:null}} ...>\n <AlertDialogTrigger asChild={true}>\n <DialogTrigger __scopeDialog={{Dialog:[...]}} asChild={true} ref={null}>\n <Primitive.button type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.SlotClone type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Button variant=\"outline\" size=\"sm\" type=\"button\" aria-haspopup=\"dialog\" ...>\n <button\n data-slot=\"button\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm...\"}\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={false}\n+ aria-controls=\"radix-_R_1ajqatpesndubn6lb_\"\n- aria-controls=\"radix-_R_5af9bn5ritnqbn6lb_\"\n data-state=\"closed\"\n onClick={function handleEvent}\n ref={function}\n >\n+ 归档\n ...\n <LessonPlanCard plan={{id:\"wkama4...\", ...}} viewMode=\"teacher\">\n <div className=\"border bor...\">\n <LinkComponent>\n <div>\n <div>\n <div>\n <div className=\"flex gap-2...\">\n <Button>\n <AlertDialog>\n <Dialog __scopeDialog={{Dialog:[...]}} modal={true}>\n <DialogProvider scope={{Dialog:[...]}} triggerRef={{current:null}} contentRef={{current:null}} ...>\n <AlertDialogTrigger asChild={true}>\n <DialogTrigger __scopeDialog={{Dialog:[...]}} asChild={true} ref={null}>\n <Primitive.button type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.SlotClone type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Button variant=\"outline\" size=\"sm\" type=\"button\" aria-haspopup=\"dialog\" ...>\n <button\n data-slot=\"button\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm...\"}\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={false}\n+ aria-controls=\"radix-_R_1alqatpesndubn6lb_\"\n- aria-controls=\"radix-_R_5an9bn5ritnqbn6lb_\"\n data-state=\"closed\"\n onClick={function handleEvent}\n ref={function}\n >\n+ 归档\n ...\n <LessonPlanCard plan={{id:\"hnkmjz...\", ...}} viewMode=\"teacher\">\n <div className=\"border bor...\">\n <LinkComponent>\n <div>\n <div>\n <div>\n <div className=\"flex gap-2...\">\n <Button>\n <AlertDialog>\n <Dialog __scopeDialog={{Dialog:[...]}} modal={true}>\n <DialogProvider scope={{Dialog:[...]}} triggerRef={{current:null}} contentRef={{current:null}} ...>\n <AlertDialogTrigger asChild={true}>\n <DialogTrigger __scopeDialog={{Dialog:[...]}} asChild={true} ref={null}>\n <Primitive.button type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.SlotClone type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Button variant=\"outline\" size=\"sm\" type=\"button\" aria-haspopup=\"dialog\" ...>\n <button\n data-slot=\"button\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm...\"}\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={false}\n+ aria-controls=\"radix-_R_1anqatpesndubn6lb_\"\n- aria-controls=\"radix-_R_5av9bn5ritnqbn6lb_\"\n data-state=\"closed\"\n onClick={function handleEvent}\n ref={function}\n >\n+ 归档\n ...\n <LessonPlanCard plan={{id:\"k43bo4...\", ...}} viewMode=\"teacher\">\n <div className=\"border bor...\">\n <LinkComponent>\n <div>\n <div>\n <div>\n <div className=\"flex gap-2...\">\n <Button>\n <AlertDialog>\n <Dialog __scopeDialog={{Dialog:[...]}} modal={true}>\n <DialogProvider scope={{Dialog:[...]}} triggerRef={{current:null}} contentRef={{current:null}} ...>\n <AlertDialogTrigger asChild={true}>\n <DialogTrigger __scopeDialog={{Dialog:[...]}} asChild={true} ref={null}>\n <Primitive.button type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.SlotClone type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Button variant=\"outline\" size=\"sm\" type=\"button\" aria-haspopup=\"dialog\" ...>\n <button\n data-slot=\"button\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm...\"}\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={false}\n+ aria-controls=\"radix-_R_1apqatpesndubn6lb_\"\n- aria-controls=\"radix-_R_5b79bn5ritnqbn6lb_\"\n data-state=\"closed\"\n onClick={function handleEvent}\n ref={function}\n >\n+ 归档\n ...\n <LessonPlanCard plan={{id:\"kiret3...\", ...}} viewMode=\"teacher\">\n <div className=\"border bor...\">\n <LinkComponent>\n <div>\n <div>\n <div>\n <div className=\"flex gap-2...\">\n <Button>\n <AlertDialog>\n <Dialog __scopeDialog={{Dialog:[...]}} modal={true}>\n <DialogProvider scope={{Dialog:[...]}} triggerRef={{current:null}} contentRef={{current:null}} ...>\n <AlertDialogTrigger asChild={true}>\n <DialogTrigger __scopeDialog={{Dialog:[...]}} asChild={true} ref={null}>\n <Primitive.button type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.SlotClone type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Button variant=\"outline\" size=\"sm\" type=\"button\" aria-haspopup=\"dialog\" ...>\n <button\n data-slot=\"button\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm...\"}\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={false}\n+ aria-controls=\"radix-_R_1arqatpesndubn6lb_\"\n- aria-controls=\"radix-_R_5bf9bn5ritnqbn6lb_\"\n data-state=\"closed\"\n onClick={function handleEvent}\n ref={function}\n >\n+ 归档\n ...\n <LessonPlanCard plan={{id:\"q8bl25...\", ...}} viewMode=\"teacher\">\n <div className=\"border bor...\">\n <LinkComponent>\n <div>\n <div>\n <div>\n <div className=\"flex gap-2...\">\n <Button>\n <AlertDialog>\n <Dialog __scopeDialog={{Dialog:[...]}} modal={true}>\n <DialogProvider scope={{Dialog:[...]}} triggerRef={{current:null}} contentRef={{current:null}} ...>\n <AlertDialogTrigger asChild={true}>\n <DialogTrigger __scopeDialog={{Dialog:[...]}} asChild={true} ref={null}>\n <Primitive.button type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.SlotClone type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Button variant=\"outline\" size=\"sm\" type=\"button\" aria-haspopup=\"dialog\" ...>\n <button\n data-slot=\"button\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm...\"}\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={false}\n+ aria-controls=\"radix-_R_1atqatpesndubn6lb_\"\n- aria-controls=\"radix-_R_5bn9bn5ritnqbn6lb_\"\n data-state=\"closed\"\n onClick={function handleEvent}\n ref={function}\n >\n+ 归档\n ...\n <LessonPlanCard plan={{id:\"jn8to5...\", ...}} viewMode=\"teacher\">\n <div className=\"border bor...\">\n <LinkComponent>\n <div>\n <div>\n <div>\n <div className=\"flex gap-2...\">\n <Button>\n <AlertDialog>\n <Dialog __scopeDialog={{Dialog:[...]}} modal={true}>\n <DialogProvider scope={{Dialog:[...]}} triggerRef={{current:null}} contentRef={{current:null}} ...>\n <AlertDialogTrigger asChild={true}>\n <DialogTrigger __scopeDialog={{Dialog:[...]}} asChild={true} ref={null}>\n <Primitive.button type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.SlotClone type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Button variant=\"outline\" size=\"sm\" type=\"button\" aria-haspopup=\"dialog\" ...>\n <button\n data-slot=\"button\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm...\"}\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={false}\n+ aria-controls=\"radix-_R_1avqatpesndubn6lb_\"\n- aria-controls=\"radix-_R_5bv9bn5ritnqbn6lb_\"\n data-state=\"closed\"\n onClick={function handleEvent}\n ref={function}\n >\n+ 归档\n ...\n <LessonPlanCard plan={{id:\"wdqlzc...\", ...}} viewMode=\"teacher\">\n <div className=\"border bor...\">\n <LinkComponent>\n <div>\n <div>\n <div>\n <div className=\"flex gap-2...\">\n <Button>\n <AlertDialog>\n <Dialog __scopeDialog={{Dialog:[...]}} modal={true}>\n <DialogProvider scope={{Dialog:[...]}} triggerRef={{current:null}} contentRef={{current:null}} ...>\n <AlertDialogTrigger asChild={true}>\n <DialogTrigger __scopeDialog={{Dialog:[...]}} asChild={true} ref={null}>\n <Primitive.button type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.SlotClone type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Button variant=\"outline\" size=\"sm\" type=\"button\" aria-haspopup=\"dialog\" ...>\n <button\n data-slot=\"button\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm...\"}\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={false}\n+ aria-controls=\"radix-_R_1b1qatpesndubn6lb_\"\n- aria-controls=\"radix-_R_5c79bn5ritnqbn6lb_\"\n data-state=\"closed\"\n onClick={function handleEvent}\n ref={function}\n >\n+ 归档\n ...\n"
|
||
],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"url": "/teacher/lesson-plans/new",
|
||
"category": "Lesson Plans",
|
||
"status": "passed",
|
||
"http_status": 200,
|
||
"final_url": "http://localhost:3000/teacher/lesson-plans/new",
|
||
"errors": [],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"url": "/teacher/attendance",
|
||
"category": "Attendance",
|
||
"status": "passed",
|
||
"http_status": 200,
|
||
"final_url": "http://localhost:3000/teacher/attendance",
|
||
"errors": [],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"url": "/teacher/attendance/sheet",
|
||
"category": "Attendance",
|
||
"status": "passed",
|
||
"http_status": 200,
|
||
"final_url": "http://localhost:3000/teacher/attendance/sheet",
|
||
"errors": [],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"url": "/teacher/attendance/stats",
|
||
"category": "Attendance",
|
||
"status": "passed",
|
||
"http_status": 200,
|
||
"final_url": "http://localhost:3000/teacher/attendance/stats",
|
||
"errors": [],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"url": "/teacher/schedule-changes",
|
||
"category": "Schedule Changes",
|
||
"status": "failed",
|
||
"http_status": 500,
|
||
"final_url": "http://localhost:3000/teacher/schedule-changes",
|
||
"errors": [
|
||
"HTTP 500 error",
|
||
"Failed to load resource: the server responded with a status of 500 (Internal Server Error)",
|
||
"%o\n\n%s PermissionDeniedError: 权限不足:需要 schedule:adjust 权限。请联系管理员授权或切换账号后重试。\n at requirePermission (about://React/Server/E:%5CDesktop%5CCICD%5C.next%5Cdev%5Cserver%5Cchunks%5Cssr%5C%5Broot-of-the-server%5D__20b59666._.js?49:3692:15)\n at TeacherScheduleChangesPage (about://React/Server/E:%5CDesktop%5CCICD%5C.next%5Cdev%5Cserver%5Cchunks%5Cssr%5C%5Broot-of-the-server%5D__dd4f396b._.js?50:127:17)\n at resolveErrorDev (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:1882:148)\n at processFullStringRow (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:2390:29)\n at processFullBinaryRow (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:2349:9)\n at processBinaryChunk (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:2459:98)\n at progress (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:2628:13) The above error occurred in the <TeacherScheduleChangesPage> component. It was handled by the <ErrorBoundaryHandler> error boundary."
|
||
],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"url": "/teacher/diagnostic",
|
||
"category": "Diagnostic",
|
||
"status": "passed",
|
||
"http_status": 200,
|
||
"final_url": "http://localhost:3000/teacher/diagnostic",
|
||
"errors": [
|
||
"%o\n\n%s Error: Failed query: select `id`, `student_id`, `generated_by`, `class_id`, `report_type`, `period`, `summary`, `strengths`, `weaknesses`, `recommendations`, `overall_score`, `report_status`, `created_at`, `updated_at` from `learning_diagnostic_reports` order by `learning_diagnostic_reports`.`created_at` desc limit ?\nparams: 100\n at <anonymous> (about://React/Server/E:%5CDesktop%5CCICD%5C.next%5Cdev%5Cserver%5Cchunks%5Cssr%5C%5Broot-of-the-server%5D__520e8e85._.js?69:11677:31)\n at TeacherDiagnosticPage (about://React/Server/E:%5CDesktop%5CCICD%5C.next%5Cdev%5Cserver%5Cchunks%5Cssr%5C%5Broot-of-the-server%5D__c5e083b6._.js?70:138:21)\n at resolveErrorDev (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:1882:148)\n at processFullStringRow (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:2390:29)\n at processFullBinaryRow (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:2349:9)\n at processBinaryChunk (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:2459:98)\n at progress (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:2628:13) The above error occurred in the <TeacherDiagnosticPage> component. It was handled by the <ErrorBoundaryHandler> error boundary."
|
||
],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"url": "/teacher/elective",
|
||
"category": "Elective",
|
||
"status": "passed",
|
||
"http_status": 200,
|
||
"final_url": "http://localhost:3000/teacher/elective",
|
||
"errors": [],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"url": "/teacher/error-book",
|
||
"category": "Error Book",
|
||
"status": "passed",
|
||
"http_status": 200,
|
||
"final_url": "http://localhost:3000/teacher/error-book",
|
||
"errors": [
|
||
"%o\n\n%s Error: Failed query: select `id`, `error_status`, `knowledge_point_ids` from `error_book_items` where `error_book_items`.`student_id` in (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\nparams: user_s_g1c1_1,user_s_g1c1_2,user_s_g1c1_3,user_s_g1c1_4,user_s_g1c1_5,user_s_g1c1_6,user_s_g1c2_1,user_s_g1c2_2,user_s_g1c2_3,user_s_g1c2_4,user_s_g1c2_5,user_s_g1c2_6\n at getKnowledgePointWeakness (about://React/Server/E:%5CDesktop%5CCICD%5C.next%5Cdev%5Cserver%5Cchunks%5Cssr%5C%5Broot-of-the-server%5D__ff9d8e4f._.js?65:696:18)\n at TeacherErrorBookPage (about://React/Server/E:%5CDesktop%5CCICD%5C.next%5Cdev%5Cserver%5Cchunks%5Cssr%5C%5Broot-of-the-server%5D__ff9d8e4f._.js?66:1992:75)\n at resolveErrorDev (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:1882:148)\n at processFullStringRow (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:2390:29)\n at processFullBinaryRow (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:2349:9)\n at processBinaryChunk (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:2459:98)\n at progress (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:2628:13) The above error occurred in the <TeacherErrorBookPage> component. It was handled by the <ErrorBoundaryHandler> error boundary."
|
||
],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"url": "/teacher/textbooks/em3l39kx0inu9rsq6onnpe7r",
|
||
"category": "Textbooks Detail",
|
||
"status": "passed",
|
||
"http_status": 200,
|
||
"final_url": "http://localhost:3000/teacher/textbooks/em3l39kx0inu9rsq6onnpe7r",
|
||
"errors": [],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"url": "/teacher/textbooks/loncxhs6kk4l33d826wv1m9y",
|
||
"category": "Textbooks Detail",
|
||
"status": "passed",
|
||
"http_status": 200,
|
||
"final_url": "http://localhost:3000/teacher/textbooks/loncxhs6kk4l33d826wv1m9y",
|
||
"errors": [],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"url": "/teacher/textbooks/b9kusgl3cxhtjcf1tcpvokhk",
|
||
"category": "Textbooks Detail",
|
||
"status": "passed",
|
||
"http_status": 200,
|
||
"final_url": "http://localhost:3000/teacher/textbooks/b9kusgl3cxhtjcf1tcpvokhk",
|
||
"errors": [],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"url": "/teacher/classes/my/class_G1C1",
|
||
"category": "Classes Detail",
|
||
"status": "passed",
|
||
"http_status": 200,
|
||
"final_url": "http://localhost:3000/teacher/classes/my/class_G1C1",
|
||
"errors": [],
|
||
"warnings": [
|
||
"Error text: 20",
|
||
"Error text: 42",
|
||
"Error text: 42"
|
||
]
|
||
},
|
||
{
|
||
"url": "/teacher/course-plans/cp_g1c1_chinese",
|
||
"category": "Course Plans Detail",
|
||
"status": "passed",
|
||
"http_status": 200,
|
||
"final_url": "http://localhost:3000/teacher/course-plans/cp_g1c1_chinese",
|
||
"errors": [
|
||
"A tree hydrated but some attributes of the server rendered HTML didn't match the client properties. This won't be patched up. This can happen if a SSR-ed Client Component used:\n\n- A server/client branch `if (typeof window !== 'undefined')`.\n- Variable input such as `Date.now()` or `Math.random()` which changes each time it's called.\n- Date formatting in a user's locale which doesn't match the server.\n- External changing data without sending a snapshot of it along with the HTML.\n- Invalid HTML tag nesting.\n\nIt can also happen if the client has a browser extension installed which messes with the HTML before React loaded.\n\n%s%s https://react.dev/link/hydration-mismatch \n\n ...\n <SidebarProvider sidebar={<AppSidebar>}>\n <div className=\"flex h-scr...\">\n <aside>\n <div className=\"flex-1 fle...\">\n <a>\n ...\n <div className=\"flex items...\">\n <GlobalSearch>\n ...\n <MenuAnchor asChild={true} __scopeMenu={{Menu:[...], ...}}>\n <PopperAnchor __scopePopper={{Menu:[...], ...}} asChild={true} ref={null}>\n <Primitive.div asChild={true} ref={function}>\n <Primitive.div.Slot ref={function}>\n <Primitive.div.SlotClone ref={function}>\n <Primitive.button type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Primitive.button.SlotClone type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Button variant=\"ghost\" size=\"icon\" className=\"relative t...\" aria-label=\"通知\" ...>\n <button\n data-slot=\"dropdown-menu-trigger\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap round...\"}\n aria-label=\"通知\"\n type=\"button\"\n+ id=\"radix-_R_19ebn6lb_\"\n- id=\"radix-_R_55qbn6lb_\"\n aria-haspopup=\"menu\"\n aria-expanded={false}\n aria-controls={undefined}\n data-state=\"closed\"\n data-disabled={undefined}\n disabled={false}\n onPointerDown={function handleEvent}\n onKeyDown={function handleEvent}\n ref={function}\n >\n ...\n <MenuAnchor asChild={true} __scopeMenu={{Menu:[...], ...}}>\n <PopperAnchor __scopePopper={{Menu:[...], ...}} asChild={true} ref={null}>\n <Primitive.div asChild={true} ref={function}>\n <Primitive.div.Slot ref={function}>\n <Primitive.div.SlotClone ref={function}>\n <Primitive.button type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Primitive.button.SlotClone type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Button variant=\"ghost\" className=\"relative s...\" type=\"button\" id=\"radix-_R_1...\" ...>\n <button\n data-slot=\"dropdown-menu-trigger\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-...\"}\n type=\"button\"\n+ id=\"radix-_R_1pebn6lb_\"\n- id=\"radix-_R_75qbn6lb_\"\n aria-haspopup=\"menu\"\n aria-expanded={false}\n aria-controls={undefined}\n data-state=\"closed\"\n data-disabled={undefined}\n disabled={false}\n onPointerDown={function handleEvent}\n onKeyDown={function handleEvent}\n ref={function}\n >\n <main>\n <AiAssistantWidget>\n <Sheet open={false} onOpenChange={function bound dispatchSetState}>\n <Dialog data-slot=\"sheet\" open={false} onOpenChange={function bound dispatchSetState}>\n <DialogProvider scope={undefined} triggerRef={{current:null}} contentRef={{current:null}} ...>\n <SheetTrigger asChild={true}>\n <DialogTrigger data-slot=\"sheet-trigger\" asChild={true}>\n <Primitive.button type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.SlotClone type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Button type=\"button\" size=\"icon\" className=\"fixed bott...\" aria-label=\"打开 AI 助手\" ...>\n <button\n data-slot=\"sheet-trigger\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm f...\"}\n type=\"button\"\n aria-label=\"打开 AI 助手\"\n aria-haspopup=\"dialog\"\n aria-expanded={false}\n+ aria-controls=\"radix-_R_2ebn6lb_\"\n- aria-controls=\"radix-_R_9qbn6lb_\"\n data-state=\"closed\"\n onClick={function handleEvent}\n ref={function}\n >\n ...\n"
|
||
],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"url": "/teacher/lesson-plans/new",
|
||
"category": "Lesson Plans Detail",
|
||
"status": "passed",
|
||
"http_status": 200,
|
||
"final_url": "http://localhost:3000/teacher/lesson-plans/new",
|
||
"errors": [],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"url": "/teacher/lesson-plans/o20j6es4xbrc1qtbsi33l8wc/edit",
|
||
"category": "Lesson Plans Detail",
|
||
"status": "passed",
|
||
"http_status": 200,
|
||
"final_url": "http://localhost:3000/teacher/lesson-plans/o20j6es4xbrc1qtbsi33l8wc/edit",
|
||
"errors": [
|
||
"A tree hydrated but some attributes of the server rendered HTML didn't match the client properties. This won't be patched up. This can happen if a SSR-ed Client Component used:\n\n- A server/client branch `if (typeof window !== 'undefined')`.\n- Variable input such as `Date.now()` or `Math.random()` which changes each time it's called.\n- Date formatting in a user's locale which doesn't match the server.\n- External changing data without sending a snapshot of it along with the HTML.\n- Invalid HTML tag nesting.\n\nIt can also happen if the client has a browser extension installed which messes with the HTML before React loaded.\n\n%s%s https://react.dev/link/hydration-mismatch \n\n ...\n <SidebarProvider sidebar={<AppSidebar>}>\n <div className=\"flex h-scr...\">\n <aside>\n <div className=\"flex-1 fle...\">\n <a>\n ...\n <div className=\"flex items...\">\n <GlobalSearch>\n ...\n <MenuAnchor asChild={true} __scopeMenu={{Menu:[...], ...}}>\n <PopperAnchor __scopePopper={{Menu:[...], ...}} asChild={true} ref={null}>\n <Primitive.div asChild={true} ref={function}>\n <Primitive.div.Slot ref={function}>\n <Primitive.div.SlotClone ref={function}>\n <Primitive.button type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Primitive.button.SlotClone type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Button variant=\"ghost\" size=\"icon\" className=\"relative t...\" aria-label=\"通知\" ...>\n <button\n data-slot=\"dropdown-menu-trigger\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap round...\"}\n aria-label=\"通知\"\n type=\"button\"\n+ id=\"radix-_R_19ebn6lb_\"\n- id=\"radix-_R_55qbn6lb_\"\n aria-haspopup=\"menu\"\n aria-expanded={false}\n aria-controls={undefined}\n data-state=\"closed\"\n data-disabled={undefined}\n disabled={false}\n onPointerDown={function handleEvent}\n onKeyDown={function handleEvent}\n ref={function}\n >\n ...\n <MenuAnchor asChild={true} __scopeMenu={{Menu:[...], ...}}>\n <PopperAnchor __scopePopper={{Menu:[...], ...}} asChild={true} ref={null}>\n <Primitive.div asChild={true} ref={function}>\n <Primitive.div.Slot ref={function}>\n <Primitive.div.SlotClone ref={function}>\n <Primitive.button type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Primitive.button.SlotClone type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Button variant=\"ghost\" className=\"relative s...\" type=\"button\" id=\"radix-_R_1...\" ...>\n <button\n data-slot=\"dropdown-menu-trigger\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-...\"}\n type=\"button\"\n+ id=\"radix-_R_1pebn6lb_\"\n- id=\"radix-_R_75qbn6lb_\"\n aria-haspopup=\"menu\"\n aria-expanded={false}\n aria-controls={undefined}\n data-state=\"closed\"\n data-disabled={undefined}\n disabled={false}\n onPointerDown={function handleEvent}\n onKeyDown={function handleEvent}\n ref={function}\n >\n <main>\n <AiAssistantWidget>\n <Sheet open={false} onOpenChange={function bound dispatchSetState}>\n <Dialog data-slot=\"sheet\" open={false} onOpenChange={function bound dispatchSetState}>\n <DialogProvider scope={undefined} triggerRef={{current:null}} contentRef={{current:null}} ...>\n <SheetTrigger asChild={true}>\n <DialogTrigger data-slot=\"sheet-trigger\" asChild={true}>\n <Primitive.button type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.SlotClone type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Button type=\"button\" size=\"icon\" className=\"fixed bott...\" aria-label=\"打开 AI 助手\" ...>\n <button\n data-slot=\"sheet-trigger\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm f...\"}\n type=\"button\"\n aria-label=\"打开 AI 助手\"\n aria-haspopup=\"dialog\"\n aria-expanded={false}\n+ aria-controls=\"radix-_R_2ebn6lb_\"\n- aria-controls=\"radix-_R_9qbn6lb_\"\n data-state=\"closed\"\n onClick={function handleEvent}\n ref={function}\n >\n ...\n",
|
||
"A tree hydrated but some attributes of the server rendered HTML didn't match the client properties. This won't be patched up. This can happen if a SSR-ed Client Component used:\n\n- A server/client branch `if (typeof window !== 'undefined')`.\n- Variable input such as `Date.now()` or `Math.random()` which changes each time it's called.\n- Date formatting in a user's locale which doesn't match the server.\n- External changing data without sending a snapshot of it along with the HTML.\n- Invalid HTML tag nesting.\n\nIt can also happen if the client has a browser extension installed which messes with the HTML before React loaded.\n\n%s%s https://react.dev/link/hydration-mismatch \n\n ...\n <Suspense fallback={<div>}>\n <LessonPlanEditor planId=\"o20j6es4xb...\" initialTitle=\"第一课 秋天\" initialDoc={{edges:[...], ...}} ...>\n <div className=\"flex flex-...\">\n <div className=\"flex items...\">\n <input>\n <div>\n <span>\n <Button>\n <Button>\n <AlertDialog>\n <Dialog __scopeDialog={{Dialog:[...]}} modal={true}>\n <DialogProvider scope={{Dialog:[...]}} triggerRef={{current:null}} contentRef={{current:null}} ...>\n <AlertDialogTrigger asChild={true}>\n <DialogTrigger __scopeDialog={{Dialog:[...]}} asChild={true} ref={null}>\n <Primitive.button type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.SlotClone type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Button size=\"sm\" disabled={false} type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <button\n data-slot=\"button\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm f...\"}\n disabled={false}\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={false}\n+ aria-controls=\"radix-_R_cpbn5ritpesndubn6lb_\"\n- aria-controls=\"radix-_R_1j5esnebn5ritnqbn6lb_\"\n data-state=\"closed\"\n onClick={function handleEvent}\n ref={function}\n >\n ...\n ...\n"
|
||
],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"url": "/teacher/lesson-plans/p54vt85kt9hk1h6yz64s27cf/edit",
|
||
"category": "Lesson Plans Detail",
|
||
"status": "passed",
|
||
"http_status": 200,
|
||
"final_url": "http://localhost:3000/teacher/lesson-plans/p54vt85kt9hk1h6yz64s27cf/edit",
|
||
"errors": [
|
||
"PageError: Switched to client rendering because the server rendering errored:\n\nFailed to call `useTranslations` because the context from `NextIntlClientProvider` was not found.\n\nThis can happen because:\n1) You i"
|
||
],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"url": "/teacher/homework/assignments/create",
|
||
"category": "Homework Detail",
|
||
"status": "passed",
|
||
"http_status": 200,
|
||
"final_url": "http://localhost:3000/teacher/homework/assignments/create",
|
||
"errors": [],
|
||
"warnings": []
|
||
},
|
||
{
|
||
"url": "/teacher/homework/assignments/hw_chinese_g1",
|
||
"category": "Homework Detail",
|
||
"status": "passed",
|
||
"http_status": 200,
|
||
"final_url": "http://localhost:3000/teacher/homework/assignments/hw_chinese_g1",
|
||
"errors": [
|
||
"A tree hydrated but some attributes of the server rendered HTML didn't match the client properties. This won't be patched up. This can happen if a SSR-ed Client Component used:\n\n- A server/client branch `if (typeof window !== 'undefined')`.\n- Variable input such as `Date.now()` or `Math.random()` which changes each time it's called.\n- Date formatting in a user's locale which doesn't match the server.\n- External changing data without sending a snapshot of it along with the HTML.\n- Invalid HTML tag nesting.\n\nIt can also happen if the client has a browser extension installed which messes with the HTML before React loaded.\n\n%s%s https://react.dev/link/hydration-mismatch \n\n ...\n <SidebarProvider sidebar={<AppSidebar>}>\n <div className=\"flex h-scr...\">\n <aside>\n <div className=\"flex-1 fle...\">\n <a>\n ...\n <div className=\"flex items...\">\n <GlobalSearch>\n ...\n <MenuAnchor asChild={true} __scopeMenu={{Menu:[...], ...}}>\n <PopperAnchor __scopePopper={{Menu:[...], ...}} asChild={true} ref={null}>\n <Primitive.div asChild={true} ref={function}>\n <Primitive.div.Slot ref={function}>\n <Primitive.div.SlotClone ref={function}>\n <Primitive.button type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Primitive.button.SlotClone type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Button variant=\"ghost\" size=\"icon\" className=\"relative t...\" aria-label=\"通知\" ...>\n <button\n data-slot=\"dropdown-menu-trigger\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap round...\"}\n aria-label=\"通知\"\n type=\"button\"\n+ id=\"radix-_R_19ebn6lb_\"\n- id=\"radix-_R_55qbn6lb_\"\n aria-haspopup=\"menu\"\n aria-expanded={false}\n aria-controls={undefined}\n data-state=\"closed\"\n data-disabled={undefined}\n disabled={false}\n onPointerDown={function handleEvent}\n onKeyDown={function handleEvent}\n ref={function}\n >\n ...\n <MenuAnchor asChild={true} __scopeMenu={{Menu:[...], ...}}>\n <PopperAnchor __scopePopper={{Menu:[...], ...}} asChild={true} ref={null}>\n <Primitive.div asChild={true} ref={function}>\n <Primitive.div.Slot ref={function}>\n <Primitive.div.SlotClone ref={function}>\n <Primitive.button type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Primitive.button.SlotClone type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Button variant=\"ghost\" className=\"relative s...\" type=\"button\" id=\"radix-_R_1...\" ...>\n <button\n data-slot=\"dropdown-menu-trigger\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-...\"}\n type=\"button\"\n+ id=\"radix-_R_1pebn6lb_\"\n- id=\"radix-_R_75qbn6lb_\"\n aria-haspopup=\"menu\"\n aria-expanded={false}\n aria-controls={undefined}\n data-state=\"closed\"\n data-disabled={undefined}\n disabled={false}\n onPointerDown={function handleEvent}\n onKeyDown={function handleEvent}\n ref={function}\n >\n <main>\n <AiAssistantWidget>\n <Sheet open={false} onOpenChange={function bound dispatchSetState}>\n <Dialog data-slot=\"sheet\" open={false} onOpenChange={function bound dispatchSetState}>\n <DialogProvider scope={undefined} triggerRef={{current:null}} contentRef={{current:null}} ...>\n <SheetTrigger asChild={true}>\n <DialogTrigger data-slot=\"sheet-trigger\" asChild={true}>\n <Primitive.button type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.SlotClone type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Button type=\"button\" size=\"icon\" className=\"fixed bott...\" aria-label=\"打开 AI 助手\" ...>\n <button\n data-slot=\"sheet-trigger\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm f...\"}\n type=\"button\"\n aria-label=\"打开 AI 助手\"\n aria-haspopup=\"dialog\"\n aria-expanded={false}\n+ aria-controls=\"radix-_R_2ebn6lb_\"\n- aria-controls=\"radix-_R_9qbn6lb_\"\n data-state=\"closed\"\n onClick={function handleEvent}\n ref={function}\n >\n ...\n"
|
||
],
|
||
"warnings": [
|
||
"Error text: 0 / 3"
|
||
]
|
||
},
|
||
{
|
||
"url": "/teacher/exams/create",
|
||
"category": "Exams Detail",
|
||
"status": "passed",
|
||
"http_status": 200,
|
||
"final_url": "http://localhost:3000/teacher/exams/create",
|
||
"errors": [],
|
||
"warnings": []
|
||
}
|
||
] |