Files
mini-programs/src/store/evaluateStore.ts
2025-10-01 09:37:28 +08:00

44 lines
925 B
TypeScript

import { create } from "zustand";
export enum EvaluateScene {
list,
publish,
detail,
user,
userEdit,
share,
}
export interface EvaluateCallback {
type: EvaluateScene | ''
next: (flag?: boolean) => void,
onCancel: () => void,
}
export interface EvaluateCallbackType extends EvaluateCallback {
setCallback: (options: { type: EvaluateScene | '', next: () => void, onCancel: () => void }) => void,
clear: () => void,
}
export const useEvaluateCallback = create<EvaluateCallbackType>()((set) => ({
type: '',
next: () => { },
onCancel: () => { },
setCallback: ({ type, next, onCancel }) => {
set({
type,
next,
onCancel,
})
},
clear: () => { set({ type: '', next: () => { }, onCancel: () => { } }) }
}));
export const useEvaluate = () => useEvaluateCallback(({ type, next, onCancel, setCallback, clear }) => ({
type,
next,
onCancel,
setCallback,
clear,
}))