import { create } from "zustand"; import { devtools } from "zustand/middleware"; import Flatastic from "@/api/flatastic"; import type { FlatasticChore, FlatasticUser } from "@/types/flatasticChore"; // biome-ignore format: deep function parseInformationData(data): FlatasticUser[] { return data.flatmates.map((user: { id: string; firstName: string }) => ({ id: user.id as string, firstName: user.firstName as string, })); } const useFlatasticStore = create( devtools( (set) => ({ flatasticData: { chores: [] as FlatasticChore[], users: [] as FlatasticUser[], }, fetch: async () => { if (!import.meta.env.VITE_FLATTASTIC_API_KEY) { throw new Error("Flatastic API Key is not set"); } const flatastic = new Flatastic( import.meta.env.VITE_FLATTASTIC_API_KEY, ); const data = await flatastic.getTaskList(); const dataB = await flatastic.getInformation(); set({ flatasticData: { chores: data as FlatasticChore[], users: parseInformationData(dataB), }, }); }, }), { name: "flatastic-store", }, ), ); export { useFlatasticStore };