2025-05-27 18:19:40 +00:00
|
|
|
import React, { useEffect, useState } from 'react';
|
2025-05-20 16:28:48 +00:00
|
|
|
import { Routes, Route } from 'react-router-dom';
|
2025-05-25 01:58:18 +00:00
|
|
|
import { Home, Profile, Schedule, Settings } from '@src/pages';
|
|
|
|
|
import { Shell } from '@components';
|
|
|
|
|
import { useLocalStore } from '@components';
|
2025-05-20 16:28:48 +00:00
|
|
|
|
2025-05-27 18:19:40 +00:00
|
|
|
const dept = {
|
|
|
|
|
id: 1,
|
2025-05-29 18:20:45 +00:00
|
|
|
company: 'Darien EMS - Post 53',
|
2025-05-27 18:19:40 +00:00
|
|
|
Abv: 'DEMS',
|
2025-05-29 18:20:45 +00:00
|
|
|
billingAddress: '0 Ledge Road',
|
|
|
|
|
town: 'Darien',
|
|
|
|
|
state: 'Connecticut',
|
|
|
|
|
postal: '06820',
|
|
|
|
|
country: 'United States',
|
|
|
|
|
phone: '',
|
|
|
|
|
displayTime: '12',
|
|
|
|
|
startDay: 'sunday',
|
|
|
|
|
companyLogo: '',
|
|
|
|
|
employeeCount: 1,
|
|
|
|
|
subscriptionExpiration: '10/01/2025',
|
2025-05-27 18:19:40 +00:00
|
|
|
schedulers: [],
|
|
|
|
|
managers: [],
|
|
|
|
|
administrators: [1]
|
|
|
|
|
};
|
|
|
|
|
|
2025-05-20 16:28:48 +00:00
|
|
|
const AppRouter = () => {
|
2025-05-27 18:19:40 +00:00
|
|
|
const { user, setUser, setDepartment } = useLocalStore();
|
|
|
|
|
const [userChanged, setUserChanged] = useState(false);
|
2025-05-25 01:58:18 +00:00
|
|
|
|
|
|
|
|
useEffect(() => {
|
2025-05-27 18:19:40 +00:00
|
|
|
setDepartment(dept);
|
2025-05-25 01:58:18 +00:00
|
|
|
setUser({
|
2025-05-27 14:45:28 +00:00
|
|
|
id: 1,
|
|
|
|
|
firstName: 'ShiftSync-Manager',
|
2025-05-26 01:40:36 +00:00
|
|
|
lastName: 'Test-User',
|
|
|
|
|
email: 'testuser@shift-sync.com',
|
2025-05-27 18:19:40 +00:00
|
|
|
scheduler: dept?.schedulers?.includes(1),
|
|
|
|
|
manager: dept?.managers?.includes(1),
|
|
|
|
|
administrator: dept?.administrators?.includes(1),
|
|
|
|
|
isSSAdmin: false
|
|
|
|
|
});
|
2025-05-25 01:58:18 +00:00
|
|
|
}, []);
|
2025-05-26 01:40:36 +00:00
|
|
|
|
2025-05-27 18:19:40 +00:00
|
|
|
useEffect(() => {
|
|
|
|
|
if (!userChanged && user) {
|
|
|
|
|
if (user?.isSSAdmin) {
|
|
|
|
|
setUser({
|
|
|
|
|
...user,
|
|
|
|
|
scheduler: true,
|
|
|
|
|
manager: true,
|
|
|
|
|
administrator: true,
|
|
|
|
|
});
|
|
|
|
|
} else if (user?.administrator) {
|
|
|
|
|
setUser({
|
|
|
|
|
...user,
|
|
|
|
|
scheduler: true,
|
|
|
|
|
manager: true,
|
|
|
|
|
});
|
|
|
|
|
} else if (user?.manager) {
|
|
|
|
|
setUser({
|
|
|
|
|
...user,
|
|
|
|
|
scheduler: true,
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
setUserChanged(true);
|
|
|
|
|
}
|
|
|
|
|
}, [user]);
|
|
|
|
|
|
|
|
|
|
|
2025-05-20 16:28:48 +00:00
|
|
|
return (
|
2025-05-23 22:22:56 +00:00
|
|
|
<Shell>
|
|
|
|
|
<Routes>
|
|
|
|
|
<Route path="/" element={<Home />} />
|
2025-05-25 01:58:18 +00:00
|
|
|
<Route path="/schedule" element={<Schedule />} />
|
|
|
|
|
<Route path="/settings" element={<Settings />} />
|
|
|
|
|
<Route path="/profile" element={<Profile />} />
|
2025-05-23 22:22:56 +00:00
|
|
|
</Routes>
|
|
|
|
|
</Shell>
|
2025-05-20 16:28:48 +00:00
|
|
|
);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export default AppRouter
|