refactor(chat): remove legacy screen visibility events and use absolute state refs

- Remove ChatScreenVisible and ChatScreenInvisible events from chat state machine
- Remove legacy ChatInit event handler
- Migrate state transitions to use absolute references (#chat.guestSession, #chat.userSession, #chat.idle)
- Adjust legal text wording for Cozsweet privacy agreement
This commit is contained in:
2026-06-11 19:10:01 +08:00
parent 1b13e4fa19
commit 6394c8ba7b
4 changed files with 11 additions and 20 deletions
-2
View File
@@ -18,8 +18,6 @@
export type ChatEvent =
// 内部 UI 事件
| { type: "ChatInit" }
| { type: "ChatScreenVisible" }
| { type: "ChatScreenInvisible" }
// 鉴权生命周期(**用户**显式触发登录后由 chat-screen 派)
| { type: "ChatGuestLogin" }
| { type: "ChatNonGuestLogin"; token: string }
+9 -14
View File
@@ -297,10 +297,8 @@ export const chatMachine = setup({
// ─────────────────────────────────────────────────────────────
idle: {
on: {
ChatGuestLogin: "guestSession",
ChatNonGuestLogin: "userSession",
// 兼容旧事件(**无**资源 —— 旧 chat-screen 还在派 ChatInit
ChatInit: "guestSession",
ChatGuestLogin: "#chat.guestSession",
ChatNonGuestLogin: "#chat.userSession",
ChatLoadMoreHistory: "loadingMoreHistory", // 旧逻辑保留(翻历史用)
},
},
@@ -345,10 +343,9 @@ export const chatMachine = setup({
actions: "appendUserImage",
},
ChatLoadMoreHistory: "loadingMore",
ChatScreenInvisible: "idle", // 屏不可见 → idle
ChatLogout: "idle", // 登出 → idle
ChatLogout: "#chat.idle", // 登出 → idle
// 跨态(游客 → email
ChatNonGuestLogin: "userSession",
ChatNonGuestLogin: "#chat.userSession",
ChatAISentenceReceived: {
actions: "appendOrUpdateAISentence",
},
@@ -426,10 +423,9 @@ export const chatMachine = setup({
actions: "appendUserImage",
},
ChatLoadMoreHistory: "loadingMore",
ChatScreenInvisible: "idle", // 屏不可见 → idlecleanup WS via parent state exit
ChatLogout: "idle", // 登出 → idlecleanup WS
ChatLogout: "#chat.idle", // 登出 → idlecleanup WS
// 跨态(email → 游客)
ChatGuestLogin: "guestSession",
ChatGuestLogin: "#chat.guestSession",
ChatAISentenceReceived: {
actions: "appendOrUpdateAISentence",
},
@@ -501,10 +497,9 @@ export const chatMachine = setup({
actions: "appendUserImage",
},
ChatLoadMoreHistory: "loadingMoreHistory",
ChatScreenInvisible: "idle",
ChatLogout: "idle",
ChatGuestLogin: "guestSession",
ChatNonGuestLogin: "userSession",
ChatLogout: "#chat.idle",
ChatGuestLogin: "#chat.guestSession",
ChatNonGuestLogin: "#chat.userSession",
ChatAISentenceReceived: {
actions: "appendOrUpdateAISentence",
},