refactor: migrate img tags to next/image and fix hook usage

This commit is contained in:
2026-06-10 19:16:41 +08:00
parent 47591be41c
commit 2bc2e1b691
30 changed files with 62 additions and 55 deletions
+3 -3
View File
@@ -20,8 +20,8 @@ import {
} from "react";
import { useMachine } from "@xstate/react";
import { chatMachine } from "./machine/chat-machine";
import type { ChatEvent, ChatState as MachineContext } from "./machine/chat-machine";
import { chatMachine } from "./chat-machine";
import type { ChatEvent, ChatState as MachineContext } from "./chat-machine";
/**
* 对外暴露的 State 形状(保持与原 ChatState 兼容)
@@ -46,7 +46,7 @@ export interface ChatProviderProps {
}
export function ChatProvider({ children }: ChatProviderProps) {
const [state, send] = useMachine(chatMachine);
const [state, send] = useMachine(chatMachine, {});
// 映射 XState 状态机快照 → 原 ChatState 形状
const chatState = useMemo<ChatState>(
@@ -24,7 +24,7 @@ import { formatDate } from "@/utils/date";
import { Result } from "@/utils/result";
import { ChatState, initialState } from "./chat-state";
import type { ChatEvent } from "./machine/chat-events";
import type { ChatEvent } from "./chat-events";
/** 游客配额阈值(与 Dart `GuestChatQuota` 保持一致) */
export const GuestChatQuota = {
@@ -35,7 +35,7 @@ export const GuestChatQuota = {
// 重新导出 State / Event 类型,保持 machine 文件的公共 API 不变
export type { ChatState } from "./chat-state";
export { initialState } from "./chat-state";
export type { ChatEvent } from "./machine/chat-events";
export type { ChatEvent } from "./chat-events";
// ============================================================
// Helpers
+1 -1
View File
@@ -8,5 +8,5 @@
* - `ChatState` 由 `chat-context.tsx` 导出(保持原 API 兼容)
* - `GuestChatQuota` 仍由 `chat-machine.ts` 导出(业务常量,与上下文配对紧密)
*/
export type { ChatEvent } from "./machine/chat-events";
export type { ChatEvent } from "./chat-events";
export { GuestChatQuota } from "./chat-machine";
+2 -2
View File
@@ -11,8 +11,8 @@
* 注:chat-side-effects.ts 暂未删除(其中 WebSocket 长生命周期逻辑
* 待下一轮迁移到 fromCallback actor)。
*/
export * from "./machine/chat-state";
export * from "./chat-state";
export * from "./chat-context";
export * from "./machine/chat-events";
export * from "./chat-events";
export * from "./chat-types";
export { chatMachine } from "./chat-machine";