Files
flashcards/packages/frontend/src/stores/lessonsStore.ts

20 lines
491 B
TypeScript

import { create } from 'zustand';
import type { LessonTreeNode } from '@flashcard/shared';
import { lessonsApi } from '../api/lessons.js';
interface LessonsState {
tree: LessonTreeNode[];
loading: boolean;
refresh: () => Promise<void>;
}
export const useLessons = create<LessonsState>((set) => ({
tree: [],
loading: false,
refresh: async () => {
set({ loading: true });
try { set({ tree: await lessonsApi.tree() }); }
finally { set({ loading: false }); }
},
}));