Files
ds-pages/app/store/config.ts
2025-08-08 17:14:09 +08:00

42 lines
1.3 KiB
TypeScript

import { type ExtractState, create } from "zustand";
import { combine, devtools, persist } from "zustand/middleware";
export type ConfigStore = ExtractState<typeof useConfigStore>;
const useConfigStore = create(
devtools(
persist(
combine(
{
meilisearchUrl: "https://meilisearch.yoshino-s.xyz/",
meilisearchToken:
"70014cdf1f1fb94b6ed420e11abf2e74e0dfa7bc00ddd77f213599c50bd1e26f",
s3Url: "https://minio-hdd.yoshino-s.xyz/",
enableHybridSearch: true,
},
(set) => ({
setMeilisearchUrl: (url: string | undefined) =>
set((state) => ({
meilisearchUrl: url ?? state.meilisearchUrl,
})),
setMeilisearchToken: (token: string | undefined) =>
set((state) => ({
meilisearchToken: token ?? state.meilisearchToken,
})),
setS3Url: (url: string | undefined) =>
set((state) => ({
s3Url: url ?? state.s3Url,
})),
setEnableHybridSearch: (enable: boolean | undefined) =>
set((state) => ({
enableHybridSearch: enable ?? state.enableHybridSearch,
})),
}),
),
{ name: "ds-pages" },
),
),
);
export default useConfigStore;