refactor(stores): reorganize flat store files into modular directory structure
All checks were successful
Frontend CI / build-and-push-web (push) Successful in 2m29s
Frontend CI / ota-android (push) Successful in 10m35s
Frontend CI / build-android-apk (push) Successful in 37m48s

Migrate from flat file organization to modular directory structure under src/stores/:

- auth/: authStore, registerStore, verificationStore, sessionStore
- call/: callStore
- settings/: chatSettingsStore, themeStore
- ui/: homeTabBarVisibilityStore, homeTabPressStore
- utils/: routePayloadCache
- group/sources.ts, group/profileResolver.ts
- message/sources.ts
- post/sources.ts

Update all import paths across components and screens to use new module paths. Maintain backward compatibility through deprecated re-export files for gradual migration.
This commit is contained in:
lafay
2026-04-13 04:56:58 +08:00
parent 4f31926eb5
commit 57d7c7405c
69 changed files with 1163 additions and 1219 deletions

View File

@@ -0,0 +1,33 @@
/**
* 不可放入 URL 的路由载荷(系统消息对象、课表课程对象等)的短时缓存。
* 深链仅带 id从通知列表等入口跳转前先 stash目标屏按 id 读取。
*/
import type { SystemMessageResponse } from '../../types/dto';
import type { Course } from '../../types/schedule';
const systemById = new Map<string, SystemMessageResponse>();
const courseById = new Map<string, { course: Course; relatedCourses: Course[] }>();
export const routePayloadCache = {
stashSystemMessage(message: SystemMessageResponse): void {
systemById.set(message.id, message);
},
getSystemMessage(id: string): SystemMessageResponse | undefined {
return systemById.get(id);
},
stashCourseDetail(course: Course, relatedCourses: Course[]): void {
courseById.set(String(course.id), { course, relatedCourses });
},
getCourseDetail(id: string): { course: Course; relatedCourses: Course[] } | undefined {
return courseById.get(id);
},
takeCourseDetail(id: string): { course: Course; relatedCourses: Course[] } | undefined {
const v = courseById.get(id);
if (v) courseById.delete(id);
return v;
},
};