41 lines
1.5 KiB
TypeScript
41 lines
1.5 KiB
TypeScript
import type { HousekeepingRouteHandler } from "../../route-handlers";
|
|
import { renderPeopleCommunityPage } from "./pages/community";
|
|
import { renderPeopleMultiAccountsPage } from "./pages/multi-accounts";
|
|
import { renderPeopleStaffPage } from "./pages/staff";
|
|
import { renderPeopleUserDetailPage } from "./pages/user-detail";
|
|
import { renderPeopleUserEditPage } from "./pages/user-edit";
|
|
import { renderPeopleUsersPage } from "./pages/users";
|
|
|
|
export const PEOPLE_PRIMARY_ROUTE_IDS = [
|
|
"people.users.list",
|
|
"people.users.edit",
|
|
"people.users.multi-accounts",
|
|
"people.users.detail",
|
|
"people.community.online",
|
|
"people.community.guilds",
|
|
"people.community.guild-detail",
|
|
"people.staff.applications",
|
|
"people.staff.teams",
|
|
] as const;
|
|
|
|
type PeoplePrimaryRouteId = (typeof PEOPLE_PRIMARY_ROUTE_IDS)[number];
|
|
|
|
function rendererFor(
|
|
routeId: PeoplePrimaryRouteId,
|
|
): HousekeepingRouteHandler["render"] {
|
|
if (routeId === "people.users.list") return renderPeopleUsersPage;
|
|
if (routeId === "people.users.edit") return renderPeopleUserEditPage;
|
|
if (routeId === "people.users.multi-accounts")
|
|
return renderPeopleMultiAccountsPage;
|
|
if (routeId === "people.users.detail") return renderPeopleUserDetailPage;
|
|
if (routeId.startsWith("people.community.")) return renderPeopleCommunityPage;
|
|
return renderPeopleStaffPage;
|
|
}
|
|
|
|
export const PEOPLE_PRIMARY_ROUTE_HANDLERS: readonly HousekeepingRouteHandler[] =
|
|
Object.freeze(
|
|
PEOPLE_PRIMARY_ROUTE_IDS.map((routeId) =>
|
|
Object.freeze({ routeId, render: rendererFor(routeId) }),
|
|
),
|
|
);
|