2021-06-17 13:42:11 +00:00
|
|
|
import React, { FunctionComponent, useMemo } from "react";
|
2021-03-25 14:22:43 +00:00
|
|
|
import { Redirect, Route, Switch, useHistory } from "react-router-dom";
|
2021-06-17 13:42:11 +00:00
|
|
|
import { useDidMount } from "rooks";
|
2021-03-25 14:22:43 +00:00
|
|
|
import { useIsRadarrEnabled, useIsSonarrEnabled } from "../@redux/hooks/site";
|
|
|
|
import BlacklistRouter from "../Blacklist/Router";
|
2021-08-22 10:32:11 +00:00
|
|
|
import DisplayItemRouter from "../DisplayItem/Router";
|
2021-03-25 14:22:43 +00:00
|
|
|
import HistoryRouter from "../History/Router";
|
|
|
|
import SettingRouter from "../Settings/Router";
|
2021-04-23 16:18:09 +00:00
|
|
|
import EmptyPage, { RouterEmptyPath } from "../special-pages/404";
|
2021-03-25 14:22:43 +00:00
|
|
|
import SystemRouter from "../System/Router";
|
2021-08-24 01:31:47 +00:00
|
|
|
import { ScrollToTop } from "../utilities";
|
2021-03-25 14:22:43 +00:00
|
|
|
import WantedRouter from "../Wanted/Router";
|
|
|
|
|
|
|
|
const Router: FunctionComponent<{ className?: string }> = ({ className }) => {
|
|
|
|
const sonarr = useIsSonarrEnabled();
|
|
|
|
const radarr = useIsRadarrEnabled();
|
|
|
|
const redirectPath = useMemo(() => {
|
|
|
|
if (sonarr) {
|
|
|
|
return "/series";
|
|
|
|
} else if (radarr) {
|
|
|
|
return "/movies";
|
|
|
|
} else {
|
|
|
|
return "/settings";
|
|
|
|
}
|
|
|
|
}, [sonarr, radarr]);
|
|
|
|
|
|
|
|
const history = useHistory();
|
|
|
|
|
2021-06-17 13:42:11 +00:00
|
|
|
useDidMount(() => {
|
|
|
|
history.listen(() => {
|
|
|
|
// This is a hack to make sure ScrollToTop will be triggered in the next frame (When everything are loaded)
|
|
|
|
setTimeout(ScrollToTop);
|
|
|
|
});
|
|
|
|
});
|
2021-03-25 14:22:43 +00:00
|
|
|
|
|
|
|
return (
|
|
|
|
<div className={className}>
|
|
|
|
<Switch>
|
|
|
|
<Route exact path="/">
|
|
|
|
<Redirect exact to={redirectPath}></Redirect>
|
|
|
|
</Route>
|
2021-08-22 10:32:11 +00:00
|
|
|
<Route path={["/series", "/movies"]}>
|
|
|
|
<DisplayItemRouter></DisplayItemRouter>
|
|
|
|
</Route>
|
2021-03-25 14:22:43 +00:00
|
|
|
<Route path="/wanted">
|
|
|
|
<WantedRouter></WantedRouter>
|
|
|
|
</Route>
|
|
|
|
<Route path="/history">
|
|
|
|
<HistoryRouter></HistoryRouter>
|
|
|
|
</Route>
|
|
|
|
<Route path="/blacklist">
|
|
|
|
<BlacklistRouter></BlacklistRouter>
|
|
|
|
</Route>
|
|
|
|
<Route path="/settings">
|
|
|
|
<SettingRouter></SettingRouter>
|
|
|
|
</Route>
|
|
|
|
<Route path="/system">
|
|
|
|
<SystemRouter></SystemRouter>
|
|
|
|
</Route>
|
|
|
|
<Route exact path={RouterEmptyPath}>
|
|
|
|
<EmptyPage></EmptyPage>
|
|
|
|
</Route>
|
|
|
|
<Route path="*">
|
|
|
|
<Redirect to={RouterEmptyPath}></Redirect>
|
|
|
|
</Route>
|
|
|
|
</Switch>
|
|
|
|
</div>
|
|
|
|
);
|
|
|
|
};
|
|
|
|
|
|
|
|
export default Router;
|