fix:修复所有的包导入错误问题

This commit is contained in:
2026-06-09 18:30:49 +08:00
parent 6e64ed35f4
commit 016bc6fd2c
13 changed files with 69 additions and 44 deletions
+13 -3
View File
@@ -3,7 +3,7 @@
/**
* 客户端鉴权门 hook
*
* 单一真值 = `authStorage`(与 `src/data/api/interceptor/token_interceptor.ts` 同源)
* 单一真值 = `window.localStorage[StorageKeys.loginToken]`
* 故意不引入 Context/Zustand:本轮只有 splash/auth 两处使用,直接 hook 调用更直白。
*
* 实现要点(React 19 / Next.js 16 约定):
@@ -22,11 +22,14 @@
*
* 注:本轮不暴露 `ready` 标志——`useSyncExternalStore` 自身的 SSR / 客户端差异
* 处理已经能保证水合首帧拿到 `false`(与 SSR 一致),无需调用方再判 ready。
*
* 注意:直接读 `window.localStorage` 是因为 `useSyncExternalStore.getSnapshot`
* 必须是同步函数。`AuthStorage.hasLoginToken()` 是 async,无法在此处使用。
*/
import { useSyncExternalStore } from "react";
import { authStorage } from "@/data/storage/auth_storage";
import { StorageKeys } from "@/data/storage/storage_keys";
export interface AuthGateState {
/** 已登录(持有非空 `cozsweet.loginToken` */
@@ -36,7 +39,14 @@ export interface AuthGateState {
// 静态 subscribelocalStorage 在本应用生命周期内不会主动变化。
const subscribe = (): (() => void) => () => {};
const getSnapshot = (): boolean => authStorage.hasLoginToken();
/**
* 同步读取 localStorage 中的 login_token(与 `AuthStorage.hasLoginToken` 语义一致)
*/
const getSnapshot = (): boolean => {
if (typeof window === "undefined") return false;
const token = window.localStorage.getItem(StorageKeys.loginToken);
return token !== null && token.length > 0;
};
const getServerSnapshot = (): boolean => false;