Initial React project
This commit is contained in:
42
src/App.tsx
42
src/App.tsx
@@ -9,10 +9,14 @@ import { DashboardPage } from './presentation/dashboard/pages/DashboardPage';
|
||||
import { JobDetailPage } from './presentation/jobs/pages/JobDetailPage';
|
||||
import { JobsPage } from './presentation/jobs/pages/JobsPage';
|
||||
import { MessagesPage } from './presentation/messages/pages/MessagesPage';
|
||||
import { SimulatorPage } from './presentation/simulator/pages/SimulatorPage';
|
||||
import {
|
||||
SimulatorPage,
|
||||
type SimulatorEvaluationSelection,
|
||||
} from './presentation/simulator/pages/SimulatorPage';
|
||||
import { SimulatorEvaluationPage } from './presentation/simulator/pages/SimulatorEvaluationPage';
|
||||
import { SubscriptionPage } from './presentation/subscription/pages/SubscriptionPage';
|
||||
|
||||
type AppPage = DashboardNavKey | 'job-detail';
|
||||
type AppPage = DashboardNavKey | 'job-detail' | 'simulator-evaluation';
|
||||
|
||||
interface JobDetailSelection {
|
||||
id: string;
|
||||
@@ -30,6 +34,7 @@ function App() {
|
||||
const [theme, setTheme] = useState<'light' | 'dark'>(initialTheme);
|
||||
const [activePage, setActivePage] = useState<AppPage>('dashboard');
|
||||
const [jobDetailSelection, setJobDetailSelection] = useState<JobDetailSelection | null>(null);
|
||||
const [evaluationSelection, setEvaluationSelection] = useState<SimulatorEvaluationSelection | null>(null);
|
||||
|
||||
function handleNavigate(target: DashboardNavKey) {
|
||||
if (
|
||||
@@ -55,10 +60,20 @@ function App() {
|
||||
setActivePage(jobDetailSelection?.returnPage ?? 'jobs');
|
||||
}
|
||||
|
||||
function handleOpenSimulatorEvaluation(selection: SimulatorEvaluationSelection) {
|
||||
setEvaluationSelection(selection);
|
||||
setActivePage('simulator-evaluation');
|
||||
}
|
||||
|
||||
function handleBackFromSimulatorEvaluation() {
|
||||
setActivePage('simulator');
|
||||
}
|
||||
|
||||
async function handleLogout() {
|
||||
await localStorageService.clearCredentials();
|
||||
setActivePage('dashboard');
|
||||
setJobDetailSelection(null);
|
||||
setEvaluationSelection(null);
|
||||
setIsAuthenticated(false);
|
||||
}
|
||||
|
||||
@@ -118,7 +133,28 @@ function App() {
|
||||
}
|
||||
|
||||
if (activePage === 'simulator') {
|
||||
return <SimulatorPage onLogout={handleLogout} onNavigate={handleNavigate} theme={theme} onToggleTheme={handleToggleTheme} />;
|
||||
return (
|
||||
<SimulatorPage
|
||||
onLogout={handleLogout}
|
||||
onNavigate={handleNavigate}
|
||||
onOpenEvaluation={handleOpenSimulatorEvaluation}
|
||||
theme={theme}
|
||||
onToggleTheme={handleToggleTheme}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
if (activePage === 'simulator-evaluation' && evaluationSelection) {
|
||||
return (
|
||||
<SimulatorEvaluationPage
|
||||
interviewSelection={evaluationSelection}
|
||||
onBack={handleBackFromSimulatorEvaluation}
|
||||
onLogout={handleLogout}
|
||||
onNavigate={handleNavigate}
|
||||
theme={theme}
|
||||
onToggleTheme={handleToggleTheme}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
if (activePage === 'subscription') {
|
||||
|
||||
Reference in New Issue
Block a user