erp-platform/ui/src/views/Dashboard.tsx

82 lines
2.7 KiB
TypeScript
Raw Normal View History

2025-05-06 06:45:49 +00:00
import { useLocalization } from '@/utils/hooks/useLocalization'
import { Helmet } from 'react-helmet'
2025-10-18 22:37:20 +00:00
import { useState } from 'react'
import IntranetSidebar from './intranet/Sidebar'
import LeaveManagement from './intranet/HR/LeaveManagement'
import OvertimeManagement from './intranet/HR/OvertimeManagement'
import ExpenseManagement from './intranet/HR/ExpenseManagement'
import EventsModule from './intranet/Event'
import DocumentsModule from './intranet/Document'
import TasksModule from './intranet/Task'
import SocialWall from './intranet/SocialWall'
import BirthdaysModule from './intranet/Birthday'
import TrainingModule from './intranet/Training'
import ReservationsModule from './intranet/Reservation'
import CafeteriaModule from './intranet/Cafeteria'
import SurveysModule from './intranet/Survey'
import VisitorsModule from './intranet/Visitor'
import AnnouncementsModule from './intranet/Announcement'
import IntranetDashboard from './intranet/Dashboard'
2025-05-06 06:45:49 +00:00
2025-08-11 06:34:44 +00:00
const Dashboard = () => {
2025-05-06 06:45:49 +00:00
const { translate } = useLocalization()
2025-10-18 22:37:20 +00:00
const [currentPath, setCurrentPath] = useState('/intranet/dashboard')
const renderContent = () => {
switch (currentPath) {
case '/intranet/dashboard':
return <IntranetDashboard />
case '/intranet/social':
return <SocialWall />
case '/intranet/hr/leave':
return <LeaveManagement />
case '/intranet/hr/overtime':
return <OvertimeManagement />
case '/intranet/hr/expense':
return <ExpenseManagement />
case '/intranet/announcements':
return <AnnouncementsModule />
case '/intranet/events':
return <EventsModule />
case '/intranet/documents':
return <DocumentsModule />
case '/intranet/tasks':
return <TasksModule />
case '/intranet/birthdays':
return <BirthdaysModule />
case '/intranet/training':
return <TrainingModule />
case '/intranet/reservations':
return <ReservationsModule />
case '/intranet/cafeteria/menu':
case '/intranet/cafeteria/shuttle':
return <CafeteriaModule />
case '/intranet/surveys':
return <SurveysModule />
case '/intranet/visitors':
return <VisitorsModule />
default:
return <IntranetDashboard />
}
}
2025-05-06 06:45:49 +00:00
return (
2025-10-18 20:04:24 +00:00
<>
<Helmet
titleTemplate="%s | Sözsoft Kurs Platform"
title={translate('::' + 'Dashboard')}
defaultTitle="Sözsoft Kurs Platform"
/>
2025-10-18 22:37:20 +00:00
<div className="flex min-h-screen bg-gray-50 dark:bg-gray-900">
<IntranetSidebar activePath={currentPath} onNavigate={setCurrentPath} />
<div className="flex-1 overflow-y-auto">
{renderContent()}
</div>
2025-10-18 20:04:24 +00:00
</div>
</>
2025-05-06 06:45:49 +00:00
)
}
2025-08-11 06:34:44 +00:00
export default Dashboard
2025-10-18 22:37:20 +00:00