fix: settings object slug link (#6228)

fixes https://github.com/twentyhq/twenty/issues/6213

fixed the mentioned case + tried to find&fix other possible broken links
This commit is contained in:
rostaklein
2024-07-11 23:31:58 +02:00
committed by GitHub
parent faf462ffe4
commit 4350279c64
4 changed files with 15 additions and 9 deletions

View File

@ -3,6 +3,7 @@ import { useNavigate } from 'react-router-dom';
import { useRecoilValue, useSetRecoilState } from 'recoil';
import { useObjectMetadataItem } from '@/object-metadata/hooks/useObjectMetadataItem';
import { getObjectSlug } from '@/object-metadata/utils/getObjectSlug';
import { useRecordActionBar } from '@/object-record/record-action-bar/hooks/useRecordActionBar';
import { useRecordBoard } from '@/object-record/record-board/hooks/useRecordBoard';
import { useRecordBoardSelection } from '@/object-record/record-board/hooks/useRecordBoardSelection';
@ -59,10 +60,9 @@ export const RecordIndexBoardDataLoaderEffect = ({
}, [recordIndexFieldDefinitions, setFieldDefinitions]);
const navigate = useNavigate();
const navigateToSelectSettings = useCallback(() => {
navigate(`/settings/objects/${objectMetadataItem.namePlural}`);
}, [navigate, objectMetadataItem.namePlural]);
navigate(`/settings/objects/${getObjectSlug(objectMetadataItem)}`);
}, [navigate, objectMetadataItem]);
const { resetRecordSelection } = useRecordBoardSelection(recordBoardId);

View File

@ -4,6 +4,7 @@ import styled from '@emotion/styled';
import { useRecoilValue } from 'recoil';
import { IconSettings, useIcons } from 'twenty-ui';
import { getObjectSlug } from '@/object-metadata/utils/getObjectSlug';
import { FieldMetadata } from '@/object-record/record-field/types/FieldMetadata';
import { RecordTableContext } from '@/object-record/record-table/contexts/RecordTableContext';
import { useRecordTableStates } from '@/object-record/record-table/hooks/internal/useRecordTableStates';
@ -57,7 +58,7 @@ export const RecordTableHeaderPlusButtonContent = () => {
)}
<DropdownMenuItemsContainer>
<StyledMenuItemLink
to={`/settings/objects/${objectMetadataItem.namePlural}`}
to={`/settings/objects/${getObjectSlug(objectMetadataItem)}`}
>
<MenuItem LeftIcon={IconSettings} text="Customize fields" />
</StyledMenuItemLink>

View File

@ -5,6 +5,7 @@ import styled from '@emotion/styled';
import { IconChevronDown, useIcons } from 'twenty-ui';
import { ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataItem';
import { getObjectSlug } from '@/object-metadata/utils/getObjectSlug';
import { useFindManyRecords } from '@/object-record/hooks/useFindManyRecords';
import { ObjectFieldRow } from '@/settings/data-model/graph-overview/components/SettingsDataModelOverviewField';
import { SettingsDataModelObjectTypeTag } from '@/settings/data-model/objects/SettingsDataModelObjectTypeTag';
@ -111,7 +112,7 @@ export const SettingsDataModelOverviewObject = ({
<StyledNode>
<StyledHeader>
<StyledObjectName onMouseEnter={() => {}} onMouseLeave={() => {}}>
<StyledObjectLink to={'/settings/objects/' + data.namePlural}>
<StyledObjectLink to={`/settings/objects/${getObjectSlug(data)}`}>
{Icon && <Icon size={theme.icon.size.md} />}
{capitalize(data.namePlural)}
</StyledObjectLink>

View File

@ -3,6 +3,7 @@ import { useLocation, useNavigate } from 'react-router-dom';
import { useRecoilValue, useSetRecoilState } from 'recoil';
import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadataItemsState';
import { getObjectSlug } from '@/object-metadata/utils/getObjectSlug';
import { navigationMemorizedUrlState } from '@/ui/navigation/states/navigationMemorizedUrlState';
import { useViewStates } from '@/views/hooks/internal/useViewStates';
import { FieldMetadataType } from '~/generated-metadata/graphql';
@ -34,16 +35,19 @@ export const useGetAvailableFieldsForKanban = () => {
if (isDefined(objectMetadataItem?.namePlural)) {
navigate(
`/settings/objects/${objectMetadataItem?.namePlural}/new-field/step-2`,
`/settings/objects/${getObjectSlug(
objectMetadataItem,
)}/new-field/step-2`,
);
} else {
navigate(`/settings/objects`);
}
}, [
navigate,
objectMetadataItem?.namePlural,
setNavigationMemorizedUrl,
location,
location.pathname,
location.search,
objectMetadataItem,
navigate,
]);
return {