Files
lume/src/stores/accounts.tsx
2023-06-01 16:51:00 +07:00

28 lines
712 B
TypeScript

import { getActiveAccount, getLastLogin } from "@utils/storage";
import { create } from "zustand";
import { createJSONStorage, persist } from "zustand/middleware";
export const useActiveAccount = create(
persist(
(set) => ({
account: null,
lastLogin: 0,
fetch: async () => {
const response = await getActiveAccount();
set({ account: response });
},
fetchLastLogin: async () => {
const response = await getLastLogin();
set({ lastLogin: parseInt(response) });
},
updateFollows: (list: any) => {
set((state: any) => ({ account: { ...state.account, follows: list } }));
},
}),
{
name: "account",
storage: createJSONStorage(() => sessionStorage),
},
),
);