Admin console additions (Layer 228): - Give Gifts: dedicated tab with sorted Lottie/TGS gift picker + inline form; grant any catalog gift to a user/channel from 777000 (no charge) - Upgraded/collectible delivery: mint a unique gift with admin-selected model/pattern/backdrop and custom number, or random/auto (DB FK + UNIQUE(gift_id,num) enforce invariants) - SCAM/FAKE flags for users/channels (migration 0136) with configurable profile warning (TELESRV_SCAM_WARNING/TELESRV_FAKE_WARNING) - Support toggle, force channel settings incl. gigagroup (migration 0137), username management, cosmetic color/emoji-status - Emoji admin tab (custom emoji list + document IDs + Lottie/TGS preview) - Bot management; soft UI / dark theme Wired through Router -> admin.Service -> adminapi -> BFF -> React panel (en/zh/ru).
73 lines
2.6 KiB
TypeScript
73 lines
2.6 KiB
TypeScript
import { type Navigate, type RouteState } from "../routing";
|
|
import { AccountDetailPage } from "./AccountDetailPage";
|
|
import { AccountsPage } from "./AccountsPage";
|
|
import { ChannelDetailPage } from "./ChannelDetailPage";
|
|
import { ChannelsPage } from "./ChannelsPage";
|
|
import { BotDetailPage } from "./BotDetailPage";
|
|
import { BotsPage } from "./BotsPage";
|
|
import { EmojiPage } from "./EmojiPage";
|
|
import { Dashboard } from "./Dashboard";
|
|
import { GroupMessageDetailPage } from "./GroupMessageDetailPage";
|
|
import { GroupMessagesPage } from "./GroupMessagesPage";
|
|
import { MessageDetailPage } from "./MessageDetailPage";
|
|
import { MessagesPage } from "./MessagesPage";
|
|
import { GiftsPage } from "./GiftsPage";
|
|
import { GiveGiftsPage } from "./GiveGiftsPage";
|
|
|
|
export function Routes({ route, navigate }: { route: RouteState; navigate: Navigate }) {
|
|
const accountID = route.path.match(/^\/accounts\/(\d+)$/)?.[1];
|
|
const channelID = route.path.match(/^\/channels\/(\d+)$/)?.[1];
|
|
const botID = route.path.match(/^\/bots\/(\d+)$/)?.[1];
|
|
if (accountID) {
|
|
return <AccountDetailPage id={Number(accountID)} navigate={navigate} />;
|
|
}
|
|
if (channelID) {
|
|
return <ChannelDetailPage id={Number(channelID)} navigate={navigate} />;
|
|
}
|
|
if (botID) {
|
|
return <BotDetailPage id={Number(botID)} navigate={navigate} />;
|
|
}
|
|
if (route.path === "/accounts") {
|
|
return <AccountsPage navigate={navigate} />;
|
|
}
|
|
if (route.path === "/channels") {
|
|
return <ChannelsPage navigate={navigate} />;
|
|
}
|
|
if (route.path === "/bots") {
|
|
return <BotsPage navigate={navigate} />;
|
|
}
|
|
if (route.path === "/emoji") {
|
|
return <EmojiPage />;
|
|
}
|
|
if (route.path === "/gifts") {
|
|
return <GiftsPage />;
|
|
}
|
|
if (route.path === "/give-gifts") {
|
|
return <GiveGiftsPage />;
|
|
}
|
|
if (route.path === "/messages/detail" || route.path === "/messages/private/detail") {
|
|
return (
|
|
<MessageDetailPage
|
|
ownerUserID={Number(route.search.get("owner_user_id") || "0")}
|
|
msgID={Number(route.search.get("msg_id") || "0")}
|
|
navigate={navigate}
|
|
/>
|
|
);
|
|
}
|
|
if (route.path === "/messages/groups/detail") {
|
|
return (
|
|
<GroupMessageDetailPage
|
|
channelID={Number(route.search.get("channel_id") || "0")}
|
|
msgID={Number(route.search.get("msg_id") || "0")}
|
|
navigate={navigate}
|
|
/>
|
|
);
|
|
}
|
|
if (route.path === "/messages/groups") {
|
|
return <GroupMessagesPage navigate={navigate} />;
|
|
}
|
|
if (route.path === "/messages" || route.path === "/messages/private") {
|
|
return <MessagesPage navigate={navigate} />;
|
|
}
|
|
return <Dashboard navigate={navigate} />;
|
|
}
|