a3dc22cb9ed318afa5690252114fd755047364bd
Task 19: 将 class-invitation-manager.tsx 从 initialCodes prop + 本地 codes state + 手动 Action 调用 + 手动 state 更新模式,迁移至 V5 缓存策略新 API: - 列表查询: useActionQuery + queryKeys.classes.invitations(classId) - 撤销 mutation: useActionMutation + actionId "classes.invitation.revoke" (成功后由 CLIENT_INVALIDATION_MAP 自动失效 ["classes", "invitations"] 前缀) - 生成回调: queryClient.invalidateQueries 手动失效本班级 invitations 查询 - 移除 initialCodes prop + codes state + isSubmitting 手动管理 配套改动: - actions-invitations.ts: 新增并导出 ClassInvitationCodeOption 强类型接口, listClassInvitationCodesAction 返回类型从 Array<Record<string, unknown>> 收窄为 ClassInvitationCodeOption[] - actions.ts barrel: 补充 type ClassInvitationCodeOption 与遗漏的 bulkEnrollStudentsAction / bulkAssignSubjectTeachersAction 导出 - 架构文档 004/005 同步更新 hook 消费方与 actions.ts exports 清单
This is a Next.js project bootstrapped with create-next-app.
Getting Started
First, run the development server:
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
Open http://localhost:3000 with your browser to see the result.
You can start editing the page by modifying app/page.tsx. The page auto-updates as you edit the file.
This project uses next/font to automatically optimize and load Geist, a new font family for Vercel.
Learn More
To learn more about Next.js, take a look at the following resources:
- Next.js Documentation - learn about Next.js features and API.
- Learn Next.js - an interactive Next.js tutorial.
You can check out the Next.js GitHub repository - your feedback and contributions are welcome!
Deploy on Vercel
The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.
Check out our Next.js deployment documentation for more details.
Description
Languages
TypeScript
89%
Python
7.8%
HTML
1.3%
Shell
0.7%
JavaScript
0.5%
Other
0.7%