SpecialX
a3dc22cb9e
refactor(classes): 客户端组件迁移至 useQuery + queryKeys 示范
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 清单
2026-07-05 18:57:10 +08:00
..
2026-06-18 03:31:07 +08:00
2026-07-05 18:57:10 +08:00
2026-03-19 13:16:49 +08:00
2026-06-18 03:31:07 +08:00
2026-06-17 20:18:29 +08:00
2026-06-22 01:06:16 +08:00
2026-07-04 23:02:14 +08:00
2026-06-18 03:31:07 +08:00
2026-03-19 13:16:49 +08:00
2026-06-17 20:18:29 +08:00
2026-06-18 03:31:07 +08:00
2026-07-05 01:37:15 +08:00
2026-06-17 20:18:29 +08:00
2026-07-05 18:07:18 +08:00
2026-06-17 22:54:29 +08:00
2026-06-18 03:32:04 +08:00