fix(client): auto jump to the first menu item after login
This commit is contained in:
parent
516c1be50d
commit
2ce3b9d21b
@ -138,7 +138,7 @@ function LayoutWithMenu(props: LayoutWithMenuProps) {
|
|||||||
setActiveKey(match.params.name);
|
setActiveKey(match.params.name);
|
||||||
}, [match.params.name]);
|
}, [match.params.name]);
|
||||||
const onMenuItemRemove = () => {
|
const onMenuItemRemove = () => {
|
||||||
history.push(`/admin`);
|
history.push(`/admin/${uid()}`);
|
||||||
};
|
};
|
||||||
console.log({ activeKey, selectedKeys });
|
console.log({ activeKey, selectedKeys });
|
||||||
return (
|
return (
|
||||||
@ -206,6 +206,7 @@ function Content({ activeKey }) {
|
|||||||
|
|
||||||
export function AdminLayout({ route, ...others }: any) {
|
export function AdminLayout({ route, ...others }: any) {
|
||||||
const match = useRouteMatch<any>();
|
const match = useRouteMatch<any>();
|
||||||
|
|
||||||
const { data = {}, loading } = useRequest(
|
const { data = {}, loading } = useRequest(
|
||||||
`ui_schemas:getTree/${route.uiSchemaKey}`,
|
`ui_schemas:getTree/${route.uiSchemaKey}`,
|
||||||
{
|
{
|
||||||
@ -214,10 +215,34 @@ export function AdminLayout({ route, ...others }: any) {
|
|||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const first: any = Object.values(data?.properties||{}).shift();
|
||||||
|
|
||||||
|
const findMenuLinkProperties = (schema: Schema): Schema[] => {
|
||||||
|
if (!schema) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
if (schema['x-component'] == 'Menu.Link') {
|
||||||
|
return [schema];
|
||||||
|
}
|
||||||
|
return schema.reduceProperties((items, current) => {
|
||||||
|
if (current['x-component'] == 'Menu.Link') {
|
||||||
|
return [...items, current];
|
||||||
|
}
|
||||||
|
return [...items, ...findMenuLinkProperties(current)];
|
||||||
|
}, []);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
if (loading) {
|
if (loading) {
|
||||||
return <Spin size={'large'} className={'nb-spin-center'} />;
|
return <Spin size={'large'} className={'nb-spin-center'} />;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const f = findMenuLinkProperties(new Schema(first||{})).shift();
|
||||||
|
|
||||||
|
if (f?.['key'] && !match.params.name) {
|
||||||
|
return <Redirect to={`/admin/${f?.['key']}`} />;
|
||||||
|
}
|
||||||
|
|
||||||
const findProperties = (schema: Schema): Schema[] => {
|
const findProperties = (schema: Schema): Schema[] => {
|
||||||
if (!schema) {
|
if (!schema) {
|
||||||
return [];
|
return [];
|
||||||
@ -240,8 +265,6 @@ export function AdminLayout({ route, ...others }: any) {
|
|||||||
parent = parent.parent;
|
parent = parent.parent;
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log('current?.title', current, current?.title, defaultSelectedKeys);
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<AuthProvider>
|
<AuthProvider>
|
||||||
<SystemSettingsProvider>
|
<SystemSettingsProvider>
|
||||||
|
Loading…
Reference in New Issue
Block a user