import { create } from "zustand"; export enum EvaluateScene { list, publish, detail, user, userEdit, share, } export interface EvaluateCallback { type: EvaluateScene | ""; // flag是用来区分跳转ntrp测试后的操作和直接修改ntrp水平成功后的操作 // score是用在加入球局前判断是否满足球局要求的返回值,限定为必传 // next有两个地方调用:ntrp结果页handleGoon、ntrp弹窗(NTRPEvaluatePopup)直接修改点击保存按钮时 next: ({ flag, score }: { flag?: boolean; score: string }) => void; onCancel: () => void; } export interface EvaluateCallbackType extends EvaluateCallback { setCallback: (options: { type: EvaluateScene | ""; next: ({ flag, score }: { flag?: boolean; score: string }) => void; onCancel: () => void; }) => void; clear: () => void; } export const useEvaluateCallback = create()((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, }));