智能导入
This commit is contained in:
37
src/store/publishBallStore.ts
Normal file
37
src/store/publishBallStore.ts
Normal 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,
|
||||
}));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user