Files
store_ai_front/src/store/extension.ts
2026-05-13 16:59:46 +08:00

38 lines
1.1 KiB
TypeScript

import {create} from "zustand";
type ExtensionState = {
isInstalled: boolean;
// 中文备注:是否已完成“检测扩展是否安装”的流程(避免页面刚刷新时先闪一下“安装扩展”卡片)
checked: boolean;
isFirst: boolean;
isFetching: boolean;
lastScanError: string;
extensionInfo: ExtensionInfo;
setInstalled: (status: boolean) => void;
setChecked: (value: boolean) => void;
setFetching: (status: boolean) => void;
setLastScanError: (message: string) => void;
}
type ExtensionInfo = {
downloadUrl: string;
chromeUrl: string;
}
const useExtensionStore = create<ExtensionState>((set) => ({
isInstalled: false,
checked: false,
isFirst: true,
isFetching: false,
lastScanError: "",
extensionInfo: {
downloadUrl: "/extensions/storeai-extension-v0.1.4.zip",
chromeUrl:"chrome://extensions"
},
setInstalled: (value) => set({isInstalled: value}),
setChecked: (value) => set({checked: value}),
setFetching: (value) => set({isFetching: value}),
setLastScanError: (value) => set({lastScanError: value}),
}))
export default useExtensionStore