智能导入

This commit is contained in:
筱野
2025-09-18 21:39:05 +08:00
parent ffdb0bda26
commit c096d265ab
11 changed files with 508 additions and 96 deletions

View File

@@ -0,0 +1,37 @@
import { create } from "zustand";
import { PublishBallFormData } from "../../types/publishBall";
interface PublishBallState {
// 待注入到发布页面的表单数据(支持单场或多场)
publishData: PublishBallFormData | PublishBallFormData[] | null;
// 赋值/覆盖整份数据
setPublishData: (
data: PublishBallFormData | PublishBallFormData[] | null
) => void;
// 读取当前数据
getPublishData: () => PublishBallFormData | PublishBallFormData[] | null;
// 清空
clearPublishData: () => void;
}
export const usePublishBallStore = create<PublishBallState>()((set, get) => ({
publishData: null,
setPublishData: (data) => set({ publishData: data }),
getPublishData: () => get().publishData,
clearPublishData: () => set({ publishData: null }),
}));
// 便捷 hooks
export const usePublishBallData = () =>
usePublishBallStore((state) => state.publishData);
export const usePublishBallActions = () =>
usePublishBallStore((state) => ({
setPublishData: state.setPublishData,
clearPublishData: state.clearPublishData,
}));