refactor(chat): remove redundant auth state management from ChatScreen documentation

refactor(chat): update guest chat quota logic to use isProduction utility
fix(user): add TODO for user initialization event on login status change
This commit is contained in:
2026-06-17 15:30:36 +08:00
parent b67beaeae6
commit 977c0905bd
3 changed files with 9 additions and 19 deletions
-5
View File
@@ -2,11 +2,6 @@
/** /**
* ChatScreen 编排层 * ChatScreen 编排层
* *
* 职责(本文件):
* - 订阅 auth 状态机(loginStatus)—— 派生 isGuest / 派鉴权生命周期事件给 chat 机器
* - 屏幕生命周期事件(init / visible / invisible
* - 不直接管理 WebSocket / 不直接读 AuthStorage(除 token 取值)
*
* 子组件职责: * 子组件职责:
* - ChatHeader:顶部栏(游客 banner / 菜单按钮) * - ChatHeader:顶部栏(游客 banner / 菜单按钮)
* - ChatArea:消息列表 * - ChatArea:消息列表
+8 -14
View File
@@ -6,6 +6,7 @@ import {
type GuestChatQuotaInput, type GuestChatQuotaInput,
type GuestChatQuotaData, type GuestChatQuotaData,
} from "@/data/schemas/chat/guest_chat_quota"; } from "@/data/schemas/chat/guest_chat_quota";
import { isProduction } from "@/utils/app-env";
export class GuestChatQuota { export class GuestChatQuota {
// 静态常量 // 静态常量
@@ -13,7 +14,7 @@ export class GuestChatQuota {
static readonly maxQuotaPerDayTest = 4; static readonly maxQuotaPerDayTest = 4;
static readonly defaultTotalQuota = 50; static readonly defaultTotalQuota = 50;
static readonly defaultTotalQuotaDev = 5; static readonly defaultTotalQuotaTest = 5;
static readonly quotaExhausted = 0; static readonly quotaExhausted = 0;
declare readonly remaining: number; declare readonly remaining: number;
@@ -40,29 +41,22 @@ export class GuestChatQuota {
return GuestChatQuota.quotaExhausted; return GuestChatQuota.quotaExhausted;
} }
/**
* 是否处于开发环境
*/
static get isDevelopment(): boolean {
return process.env.NODE_ENV !== "production";
}
/** /**
* 获取当前环境的每日最大配额 * 获取当前环境的每日最大配额
*/ */
static get threshold(): number { static get threshold(): number {
return GuestChatQuota.isDevelopment return isProduction()
? GuestChatQuota.maxQuotaPerDayTest ? GuestChatQuota.maxQuotaPerDay
: GuestChatQuota.maxQuotaPerDay; : GuestChatQuota.maxQuotaPerDayTest;
} }
/** /**
* 获取当前环境的总配额默认值 * 获取当前环境的总配额默认值
*/ */
static get totalQuotaDefault(): number { static get totalQuotaDefault(): number {
return GuestChatQuota.isDevelopment return isProduction()
? GuestChatQuota.defaultTotalQuotaDev ? GuestChatQuota.defaultTotalQuota
: GuestChatQuota.defaultTotalQuota; : GuestChatQuota.defaultTotalQuotaTest;
} }
/** /**
+1
View File
@@ -19,6 +19,7 @@ export function UserAuthSync() {
const userDispatch = useUserDispatch(); const userDispatch = useUserDispatch();
const lastInitializedStatusRef = useRef<string | null>(null); const lastInitializedStatusRef = useRef<string | null>(null);
//TODO 在测位栏界面监听变化,监听登录状态的变化若发生变化,则需要分发 user init 事件
useEffect(() => { useEffect(() => {
if (loginStatus === "notLoggedIn" || loginStatus === "guest") { if (loginStatus === "notLoggedIn" || loginStatus === "guest") {
lastInitializedStatusRef.current = null; lastInitializedStatusRef.current = null;