44 lines
925 B
TypeScript
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,
|
|
}))
|