// ============================================================ // HomeContext — 首页状态管理 // 管理:选中模型、任务分页、选中任务记录、刷新信号 // ============================================================ import { createContext, useContext } from 'react'; import type { ModelsListResponseBody } from '@/services/modules/models'; import type { TaskInfoItemResponseBody } from '@/services/modules/task'; // ---------- Context 类型 ---------- export interface HomeContextValue { /** 当前选中的模型 */ selectedModel: ModelsListResponseBody | null; setSelectedModel: (model: ModelsListResponseBody | null) => void; /** 任务记录分页 — 当前页码 */ taskPage: number; /** 任务记录分页 — 每页条数 */ taskPageSize: number; setTaskPage: (page: number) => void; setTaskPageSize: (size: number) => void; /** 当前选中的任务记录(用于右侧预览) */ selectedTask: TaskInfoItemResponseBody | null; setSelectedTask: (task: TaskInfoItemResponseBody | null) => void; /** 侧边栏折叠状态 */ isLeftCollapsed: boolean; toggleLeftCollapsed: () => void; } export const HomeContext = createContext(null); // ---------- Consumer Hook ---------- export function useHomeContext(): HomeContextValue { const ctx = useContext(HomeContext); if (!ctx) { throw new Error('useHomeContext() 必须在 内部调用'); } return ctx; }