Skip to content

Commit 220f675

Browse files
committed
feat: get object metadata from backend in Object Edit
Closes #2009
1 parent aeb88e2 commit 220f675

File tree

1 file changed

+19
-14
lines changed

1 file changed

+19
-14
lines changed

front/src/pages/settings/data-model/SettingsObjectEdit.tsx

+19-14
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,33 @@
11
import { useEffect } from 'react';
22
import { useNavigate, useParams } from 'react-router-dom';
33

4+
import { useObjectMetadata } from '@/metadata/hooks/useObjectMetadata';
45
import { SettingsPageContainer } from '@/settings/components/SettingsPageContainer';
56
import { SettingsObjectFormSection } from '@/settings/data-model/components/SettingsObjectFormSection';
6-
import { activeObjectItems } from '@/settings/data-model/constants/mockObjects';
77
import { SettingsObjectIconSection } from '@/settings/data-model/object-edit/SettingsObjectIconSection';
88
import { AppPath } from '@/types/AppPath';
99
import { IconArchive, IconSettings } from '@/ui/display/icon';
1010
import { H2Title } from '@/ui/display/typography/components/H2Title';
1111
import { Button } from '@/ui/input/button/components/Button';
12+
import { useLazyLoadIcons } from '@/ui/input/hooks/useLazyLoadIcons';
1213
import { SubMenuTopBarContainer } from '@/ui/layout/page/SubMenuTopBarContainer';
1314
import { Section } from '@/ui/layout/section/components/Section';
1415
import { Breadcrumb } from '@/ui/navigation/bread-crumb/components/Breadcrumb';
1516

1617
export const SettingsObjectEdit = () => {
1718
const navigate = useNavigate();
19+
1820
const { pluralObjectName = '' } = useParams();
19-
const activeObject = activeObjectItems.find(
20-
(activeObject) => activeObject.name.toLowerCase() === pluralObjectName,
21+
const { activeObjects } = useObjectMetadata();
22+
const activeObject = activeObjects.find(
23+
(activeObject) => activeObject.namePlural === pluralObjectName,
2124
);
2225

2326
useEffect(() => {
24-
if (!activeObject) navigate(AppPath.NotFound);
25-
}, [activeObject, navigate]);
27+
if (activeObjects.length && !activeObject) navigate(AppPath.NotFound);
28+
}, [activeObject, activeObjects.length, navigate]);
29+
30+
const { icons } = useLazyLoadIcons();
2631

2732
return (
2833
<SubMenuTopBarContainer Icon={IconSettings} title="Settings">
@@ -31,7 +36,7 @@ export const SettingsObjectEdit = () => {
3136
links={[
3237
{ children: 'Objects', href: '/settings/objects' },
3338
{
34-
children: activeObject?.name ?? '',
39+
children: activeObject?.labelPlural ?? '',
3540
href: `/settings/objects/${pluralObjectName}`,
3641
},
3742
{ children: 'Edit' },
@@ -40,16 +45,16 @@ export const SettingsObjectEdit = () => {
4045
{activeObject && (
4146
<>
4247
<SettingsObjectIconSection
43-
disabled={activeObject.type === 'standard'}
44-
Icon={activeObject.Icon}
45-
iconKey={activeObject.Icon.name}
46-
label={activeObject.name}
48+
disabled={!activeObject.isCustom}
49+
Icon={icons[activeObject.icon || '']}
50+
iconKey={activeObject.icon ?? undefined}
51+
label={activeObject.labelPlural}
4752
/>
4853
<SettingsObjectFormSection
49-
disabled={activeObject.type === 'standard'}
50-
singularName={activeObject.singularName}
51-
pluralName={activeObject.name}
52-
description={activeObject.description}
54+
disabled={!activeObject.isCustom}
55+
singularName={activeObject.labelSingular}
56+
pluralName={activeObject.labelPlural}
57+
description={activeObject.description ?? undefined}
5358
/>
5459
</>
5560
)}

0 commit comments

Comments
 (0)