Create page Object Field Step 2 (#2068)

* create page

* change runs-on param
This commit is contained in:
bosiraphael
2023-10-16 18:02:39 +02:00
committed by GitHub
parent e147e7aebb
commit 3dae11b6e4
5 changed files with 73 additions and 1 deletions

View File

@ -69,7 +69,7 @@ jobs:
"yarn storybook:pages:coverage" "yarn storybook:pages:coverage"
front-modules-sb-test: front-modules-sb-test:
needs: front-yarn-install needs: front-yarn-install
runs-on: ubuntu-latest runs-on: ci-4-cores
env: env:
REACT_APP_SERVER_BASE_URL: http://localhost:3000 REACT_APP_SERVER_BASE_URL: http://localhost:3000
steps: steps:

View File

@ -30,6 +30,7 @@ import { getPageTitleFromPath } from '~/utils/title-utils';
import { ObjectTablePage } from './pages/companies/ObjectsTable'; import { ObjectTablePage } from './pages/companies/ObjectsTable';
import { SettingsObjectNewFieldStep1 } from './pages/settings/data-model/SettingsObjectNewField/SettingsObjectNewFieldStep1'; import { SettingsObjectNewFieldStep1 } from './pages/settings/data-model/SettingsObjectNewField/SettingsObjectNewFieldStep1';
import { SettingsObjectNewFieldStep2 } from './pages/settings/data-model/SettingsObjectNewField/SettingsObjectNewFieldStep2';
export const App = () => { export const App = () => {
const { pathname } = useLocation(); const { pathname } = useLocation();
@ -107,6 +108,10 @@ export const App = () => {
path={SettingsPath.ObjectNewFieldStep1} path={SettingsPath.ObjectNewFieldStep1}
element={<SettingsObjectNewFieldStep1 />} element={<SettingsObjectNewFieldStep1 />}
/> />
<Route
path={SettingsPath.ObjectNewFieldStep2}
element={<SettingsObjectNewFieldStep2 />}
/>
</Routes> </Routes>
} }
/> />

View File

@ -5,6 +5,7 @@ export enum SettingsPath {
ObjectDetail = 'objects/:pluralObjectName', ObjectDetail = 'objects/:pluralObjectName',
ObjectEdit = 'objects/:pluralObjectName/edit', ObjectEdit = 'objects/:pluralObjectName/edit',
ObjectNewFieldStep1 = 'objects/:pluralObjectName/new-field/step-1', ObjectNewFieldStep1 = 'objects/:pluralObjectName/new-field/step-1',
ObjectNewFieldStep2 = 'objects/:pluralObjectName/new-field/step-2',
NewObject = 'objects/new', NewObject = 'objects/new',
WorkspaceMembersPage = 'workspace-members', WorkspaceMembersPage = 'workspace-members',
Workspace = 'workspace', Workspace = 'workspace',

View File

@ -0,0 +1,38 @@
import { useEffect } from 'react';
import { useNavigate, useParams } from 'react-router-dom';
import { SettingsPageContainer } from '@/settings/components/SettingsPageContainer';
import { activeObjectItems } from '@/settings/data-model/constants/mockObjects';
import { AppPath } from '@/types/AppPath';
import { IconSettings } from '@/ui/display/icon';
import { SubMenuTopBarContainer } from '@/ui/layout/page/SubMenuTopBarContainer';
import { Breadcrumb } from '@/ui/navigation/bread-crumb/components/Breadcrumb';
export const SettingsObjectNewFieldStep2 = () => {
const navigate = useNavigate();
const { pluralObjectName = '' } = useParams();
const activeObject = activeObjectItems.find(
(activeObject) => activeObject.name.toLowerCase() === pluralObjectName,
);
useEffect(() => {
if (!activeObject) navigate(AppPath.NotFound);
}, [activeObject, navigate]);
return (
<SubMenuTopBarContainer Icon={IconSettings} title="Settings">
<SettingsPageContainer>
<Breadcrumb
links={[
{ children: 'Objects', href: '/settings/objects' },
{
children: activeObject?.name ?? '',
href: `/settings/objects/${pluralObjectName}`,
},
{ children: 'New Field' },
]}
/>
</SettingsPageContainer>
</SubMenuTopBarContainer>
);
};

View File

@ -0,0 +1,28 @@
import { Meta, StoryObj } from '@storybook/react';
import {
PageDecorator,
PageDecoratorArgs,
} from '~/testing/decorators/PageDecorator';
import { graphqlMocks } from '~/testing/graphqlMocks';
import { SettingsObjectNewFieldStep2 } from '../../SettingsObjectNewField/SettingsObjectNewFieldStep2';
const meta: Meta<PageDecoratorArgs> = {
title: 'Pages/Settings/SettingsObjectNewField/SettingsObjectNewFieldStep2',
component: SettingsObjectNewFieldStep2,
decorators: [PageDecorator],
args: {
routePath: '/settings/objects/:pluralObjectName/new-field/step-2',
routeParams: { ':pluralObjectName': 'companies' },
},
parameters: {
msw: graphqlMocks,
},
};
export default meta;
export type Story = StoryObj<typeof SettingsObjectNewFieldStep2>;
export const Default: Story = {};