learning_platform/src/store/index.ts
2026-04-20 06:48:31 +00:00

31 lines
959 B
TypeScript

import { create } from 'zustand';
import { User, Course, Language } from '../types';
import { mockUser, mockCourses } from '../data/mock';
interface AppState {
user: User | null;
courses: Course[];
isAuthenticated: boolean;
login: (email: string) => void;
logout: () => void;
updateLanguage: (lang: Language) => void;
addStudyTime: (minutes: number) => void;
}
export const useStore = create<AppState>((set) => ({
user: mockUser,
courses: mockCourses,
isAuthenticated: true, // Auto login for demo
login: (email) => set({
user: { ...mockUser, email },
isAuthenticated: true
}),
logout: () => set({ user: null, isAuthenticated: false }),
updateLanguage: (lang) => set((state) => ({
user: state.user ? { ...state.user, currentLanguage: lang } : null
})),
addStudyTime: (minutes) => set((state) => ({
user: state.user ? { ...state.user, totalStudyTime: state.user.totalStudyTime + minutes } : null
}))
}));