import { Prisma, StaffDto } from "@nice/common"; import React, { createContext, ReactNode, useContext, useMemo, useState, } from "react"; // import { useDebounce } from "use-debounce"; import { Form, FormInstance } from 'antd'; interface MainContextType { searchValue?: string; setSearchValue: React.Dispatch>; formValue?: {[key: string]: any}; setFormValue: React.Dispatch>; form: FormInstance; // 新增表单实例 visible: boolean; setVisible: React.Dispatch>; editingRecord?: StaffDto | null; setEditingRecord: React.Dispatch>; } const MainContext = createContext(null); interface MainProviderProps { children: ReactNode; } export function MainProvider({ children }: MainProviderProps) { const [searchValue, setSearchValue] = useState(""); const [formValue, setFormValue] = useState<{[key: string]: any}>({}); const [form] = Form.useForm(); // 添加AntD表单实例 const [visible, setVisible] = useState(false); const [editingRecord, setEditingRecord] = useState(null); return (
setFormValue(all)} initialValues={formValue} > {children}
); } export const useMainContext = () => { const context = useContext(MainContext); if (!context) { throw new Error("useMainContext must be used within MainProvider"); } return context; };