- Vite 기본 템플릿 정리 및 index.html 수정 - guideline.html 기반 디자인 토큰 적용 (index.css) - Feature-based 폴더 구조 (8개 feature 모듈) - 18개 placeholder 페이지 + lazy loading 라우터 - 레이아웃 컴포넌트 (AppLayout, AppHeader, AppSidebar, AuthLayout) - Zustand 스토어 (authStore, uiStore) - API 계층 (Axios client, auth.api) - 타입 정의, 유틸리티, 환경변수 설정 - ErrorBoundary, ProtectedRoute, PublicRoute Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
12 lines
277 B
TypeScript
12 lines
277 B
TypeScript
import { create } from "zustand";
|
|
|
|
interface UiState {
|
|
isSidebarOpen: boolean;
|
|
toggleSidebar: () => void;
|
|
}
|
|
|
|
export const useUiStore = create<UiState>((set) => ({
|
|
isSidebarOpen: true,
|
|
toggleSidebar: () => set((state) => ({ isSidebarOpen: !state.isSidebarOpen })),
|
|
}));
|