72 lines
2.0 KiB
TypeScript
72 lines
2.0 KiB
TypeScript
export interface AdminBreadcrumbItem {
|
|
label: string;
|
|
to?: string;
|
|
}
|
|
|
|
/** 子页面顶栏面包屑(一级菜单 + 当前子页) */
|
|
export function resolveAdminBreadcrumb(
|
|
path: string,
|
|
t: (key: string) => string,
|
|
query: Record<string, unknown> = {},
|
|
): AdminBreadcrumbItem[] | null {
|
|
if (/^\/users\/agents\/[^/]+\/players/.test(path)) {
|
|
return [
|
|
{ label: t('nav.agents_players'), to: '/users' },
|
|
{ label: t('breadcrumb.agent_direct_players') },
|
|
];
|
|
}
|
|
if (path === '/users/settings') {
|
|
return [
|
|
{ label: t('nav.agents_players'), to: '/users' },
|
|
{ label: t('user.page_settings') },
|
|
];
|
|
}
|
|
if (/^\/matches\/leagues\/[^/]+/.test(path)) {
|
|
return [
|
|
{ label: t('nav.matches'), to: '/matches' },
|
|
{ label: t('breadcrumb.league_fixtures') },
|
|
];
|
|
}
|
|
if (/^\/matches\/outrights\/leagues\/[^/]+/.test(path)) {
|
|
return [
|
|
{ label: t('nav.matches'), to: '/matches/outrights' },
|
|
{ label: t('breadcrumb.league_outrights') },
|
|
];
|
|
}
|
|
if (/^\/settlement\/[^/]+/.test(path)) {
|
|
const returnTo =
|
|
typeof query.returnTo === 'string' && query.returnTo.startsWith('/')
|
|
? query.returnTo
|
|
: '/matches';
|
|
return [
|
|
{ label: t('nav.matches'), to: returnTo },
|
|
{ label: t('breadcrumb.settlement') },
|
|
];
|
|
}
|
|
if (/^\/matches\/[^/]+\/edit/.test(path)) {
|
|
return [
|
|
{ label: t('nav.matches'), to: '/matches' },
|
|
{ label: t('breadcrumb.match_edit') },
|
|
];
|
|
}
|
|
if (/^\/matches\/[^/]+\/markets/.test(path)) {
|
|
return [
|
|
{ label: t('nav.matches'), to: '/matches' },
|
|
{ label: t('breadcrumb.match_markets') },
|
|
];
|
|
}
|
|
if (path === '/dashboard/players') {
|
|
return [
|
|
{ label: t('nav.dashboard'), to: '/' },
|
|
{ label: t('nav.dashboard.players') },
|
|
];
|
|
}
|
|
if (/^\/outrights\/[^/]+\/edit/.test(path)) {
|
|
return [
|
|
{ label: t('nav.matches'), to: '/matches' },
|
|
{ label: t('nav.matches.outrights'), to: '/matches/outrights' },
|
|
];
|
|
}
|
|
return null;
|
|
}
|