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:
@ -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);
|
||||
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user