access.ts 665 B

123456789101112131415161718192021222324252627282930
  1. import { create } from "zustand";
  2. import { persist } from "zustand/middleware";
  3. import { queryMeta } from "../utils";
  4. export interface AccessControlStore {
  5. accessCode: string;
  6. updateCode: (_: string) => void;
  7. enabledAccessControl: () => boolean;
  8. }
  9. export const ACCESS_KEY = "access-control";
  10. export const useAccessStore = create<AccessControlStore>()(
  11. persist(
  12. (set, get) => ({
  13. accessCode: "",
  14. enabledAccessControl() {
  15. return queryMeta("access") === "enabled";
  16. },
  17. updateCode(code: string) {
  18. set((state) => ({ accessCode: code }));
  19. },
  20. }),
  21. {
  22. name: ACCESS_KEY,
  23. version: 1,
  24. }
  25. )
  26. );