diff --git a/src/platform/App.tsx b/src/platform/App.tsx index 18c3fe2..4018d69 100644 --- a/src/platform/App.tsx +++ b/src/platform/App.tsx @@ -1,5 +1,5 @@ import { BrowserRouter, Routes, Route, Navigate } from 'react-router-dom'; -import { AuthProvider } from '../shared/auth/AuthContext'; +import { AuthProvider, useAuth } from '../shared/auth/AuthContext'; import { SystemProvider } from '../shared/context/SystemContext'; import { AuthGuard } from '../shared/auth/AuthGuard'; import { MainLayout } from '../widgets/layout/MainLayout'; @@ -16,11 +16,19 @@ import { UserManagementPage } from './pages/UserManagementPage'; import { BasicSettingsPage } from './pages/BasicSettingsPage'; import { VersionPage } from './pages/VersionPage'; import { LicensePage } from '../system/pages/LicensePage'; +import { LandingPage } from './pages/LandingPage'; +import { GeneralPreferencesPage } from './pages/GeneralPreferencesPage'; import './styles/global.css'; const modules = [assetModule, cctvModule, productionModule]; +const DefaultRedirect = () => { + const { user } = useAuth(); + const preferredPath = localStorage.getItem(`landing_page_${user?.id}`) || '/home'; + return ; +}; + export const App = () => { return ( @@ -36,11 +44,17 @@ export const App = () => { }> + {/* Home / Platform Introduction */} + } /> + + {/* User Preferences (Accessible by everyone authenticated) */} + } /> + {/* Dynamic Module Routes */} } /> {/* Navigation Fallback within Layout */} - } /> + } /> {/* Platform Admin Routes (Could also be moved to an Admin module later) */} } /> diff --git a/src/platform/pages/GeneralPreferencesPage.tsx b/src/platform/pages/GeneralPreferencesPage.tsx new file mode 100644 index 0000000..d47535d --- /dev/null +++ b/src/platform/pages/GeneralPreferencesPage.tsx @@ -0,0 +1,91 @@ +import { useState } from 'react'; +import { Card } from '../../shared/ui/Card'; +import { Button } from '../../shared/ui/Button'; +import { Select } from '../../shared/ui/Select'; +import { Save, Home, User } from 'lucide-react'; +import { useAuth } from '../../shared/auth/AuthContext'; + +export function GeneralPreferencesPage() { + const { user } = useAuth(); + const [preferences, setPreferences] = useState({ + landingPage: localStorage.getItem(`landing_page_${user?.id}`) || '/home' + }); + const [isSaved, setIsSaved] = useState(false); + + const landingPageOptions = [ + { label: '플랫폼 소개 (기본)', value: '/home' }, + { label: '자산 대시보드', value: '/asset/dashboard' }, + { label: 'CCTV 모니터링', value: '/cctv/monitoring' }, + { label: '생산 대시보드', value: '/production/dashboard' } + ]; + + const handleSave = () => { + localStorage.setItem(`landing_page_${user?.id}`, preferences.landingPage); + setIsSaved(true); + setTimeout(() => setIsSaved(false), 3000); + }; + + return ( +
+
+

기본 설정

+

사용자 개인의 플랫폼 환경을 설정합니다.

+
+ +
+ +
+ +

로그인 랜딩 페이지

+
+ +
+

+ 로그인 시 또는 최상위 메뉴 이동 시 처음으로 표시될 화면을 선택하세요. +

+