2026-05-09 22:00:53 +09:00
|
|
|
import { Routes, Route, Navigate } from 'react-router-dom';
|
|
|
|
|
import LoginPage from '@/pages/LoginPage';
|
|
|
|
|
import MainLayout from '@/layouts/MainLayout';
|
|
|
|
|
import Dashboard from '@/pages/Dashboard';
|
2026-05-09 22:47:55 +09:00
|
|
|
|
2026-05-09 22:38:10 +09:00
|
|
|
import AgentList from '@/pages/org/AgentList';
|
2026-05-09 22:47:55 +09:00
|
|
|
import AgentDetail from '@/pages/org/AgentDetail';
|
|
|
|
|
import AgentForm from '@/pages/org/AgentForm';
|
2026-05-09 22:38:10 +09:00
|
|
|
import ContractList from '@/pages/product/ContractList';
|
|
|
|
|
import RecruitLedger from '@/pages/ledger/RecruitLedger';
|
2026-05-09 22:47:55 +09:00
|
|
|
import ExceptionLedger from '@/pages/ledger/ExceptionLedger';
|
2026-05-09 22:38:10 +09:00
|
|
|
import SettleList from '@/pages/settle/SettleList';
|
2026-05-09 22:47:55 +09:00
|
|
|
import PaymentList from '@/pages/settle/PaymentList';
|
|
|
|
|
import BatchRun from '@/pages/settle/BatchRun';
|
|
|
|
|
import UserList from '@/pages/system/UserList';
|
|
|
|
|
import RoleList from '@/pages/system/RoleList';
|
|
|
|
|
import CodeList from '@/pages/system/CodeList';
|
2026-05-09 22:00:53 +09:00
|
|
|
|
|
|
|
|
function RequireAuth({ children }: { children: React.ReactNode }) {
|
|
|
|
|
const token = localStorage.getItem('accessToken');
|
|
|
|
|
return token ? <>{children}</> : <Navigate to="/login" replace />;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export default function App() {
|
|
|
|
|
return (
|
|
|
|
|
<Routes>
|
|
|
|
|
<Route path="/login" element={<LoginPage />} />
|
|
|
|
|
<Route path="/" element={<RequireAuth><MainLayout /></RequireAuth>}>
|
|
|
|
|
<Route index element={<Dashboard />} />
|
2026-05-09 22:47:55 +09:00
|
|
|
|
|
|
|
|
{/* 조직 / 설계사 */}
|
|
|
|
|
<Route path="org/agents" element={<AgentList />} />
|
|
|
|
|
<Route path="org/agents/new" element={<AgentForm />} />
|
|
|
|
|
<Route path="org/agents/:id" element={<AgentDetail />} />
|
|
|
|
|
<Route path="org/agents/:id/edit" element={<AgentForm />} />
|
|
|
|
|
|
|
|
|
|
{/* 계약 */}
|
|
|
|
|
<Route path="contracts" element={<ContractList />} />
|
|
|
|
|
|
|
|
|
|
{/* 원장 */}
|
|
|
|
|
<Route path="ledger/recruit" element={<RecruitLedger />} />
|
|
|
|
|
<Route path="ledger/exception" element={<ExceptionLedger />} />
|
|
|
|
|
|
|
|
|
|
{/* 정산 / 지급 / 배치 */}
|
|
|
|
|
<Route path="settle" element={<SettleList />} />
|
|
|
|
|
<Route path="settle/batch" element={<BatchRun />} />
|
|
|
|
|
<Route path="payments" element={<PaymentList />} />
|
|
|
|
|
|
|
|
|
|
{/* 시스템관리 */}
|
|
|
|
|
<Route path="system/users" element={<UserList />} />
|
|
|
|
|
<Route path="system/roles" element={<RoleList />} />
|
|
|
|
|
<Route path="system/codes" element={<CodeList />} />
|
2026-05-09 22:00:53 +09:00
|
|
|
</Route>
|
|
|
|
|
</Routes>
|
|
|
|
|
);
|
|
|
|
|
}
|