52 lines
1.8 KiB
TypeScript
52 lines
1.8 KiB
TypeScript
// import { createBrowserHistory } from 'history';
|
|
import {
|
|
unstable_HistoryRouter as HistoryRouter,
|
|
Route,
|
|
Routes,
|
|
} from 'react-router-dom';
|
|
|
|
import { Error401, Error404 } from '@/errors';
|
|
import { AlbumRoutes } from '@/scene/album/AlbumRoutes';
|
|
import { ArtistRoutes } from '@/scene/artist/ArtistRoutes';
|
|
import { GenderRoutes } from '@/scene/gender/GenderRoutes';
|
|
import { HelpPage } from '@/scene/home/HelpPage';
|
|
import { HomePage } from '@/scene/home/HomePage';
|
|
import { SSORoutes } from '@/scene/sso/SSORoutes';
|
|
import { TrackRoutes } from '@/scene/track/TrackRoutes';
|
|
import { useHasRight } from '@/service/session';
|
|
import { SettingsPage } from './home/SettingsPage';
|
|
import { AddPage } from './home/AddPage';
|
|
import { OnAirPage } from './onAir/OnAirPage';
|
|
|
|
export const AppRoutes = () => {
|
|
const { isReadable } = useHasRight('user');
|
|
return (
|
|
// <HistoryRouter
|
|
// // @ts-expect-error
|
|
// history={createBrowserHistory({ window })}
|
|
// basename="/karusic"
|
|
// >
|
|
<Routes>
|
|
{/* Need to keep it in all case, it is the only way to log-in */}
|
|
<Route path="sso/*" element={<SSORoutes />} />
|
|
{isReadable ? (
|
|
<>
|
|
<Route path="/" element={<HomePage />} />
|
|
<Route path="help" element={<HelpPage />} />
|
|
<Route path="settings" element={<SettingsPage />} />
|
|
<Route path="add" element={<AddPage />} />
|
|
<Route path="on-air/*" element={<OnAirPage />} />
|
|
<Route path="artist/*" element={<ArtistRoutes />} />
|
|
<Route path="album/*" element={<AlbumRoutes />} />
|
|
<Route path="gender/*" element={<GenderRoutes />} />
|
|
<Route path="track/*" element={<TrackRoutes />} />
|
|
<Route path="*" element={<Error404 />} />
|
|
</>
|
|
) : (
|
|
<Route path="*" element={<Error401 />} />
|
|
)}
|
|
</Routes>
|
|
// </HistoryRouter>
|
|
);
|
|
};
|