Fix breadcrumbs to display friendly object names instead of API names… (#13573)

Fixes #13250

This PR fixes the breadcrumb display issue where API names were shown
instead of friendly object names when navigating to related objects in
the detail view.

---------

Co-authored-by: Félix Malfait <felix@twenty.com>
This commit is contained in:
aaron
2025-08-03 12:18:32 -07:00
committed by GitHub
parent 253a9221db
commit b8a26dfe8c
27 changed files with 211 additions and 109 deletions
@@ -14,7 +14,6 @@ import { ObjectFieldRowWithoutRelation } from '@/settings/data-model/graph-overv
import { SettingsPath } from '@/types/SettingsPath';
import '@xyflow/react/dist/style.css';
import { useState } from 'react';
import { capitalize } from 'twenty-shared/utils';
import { IconChevronDown, IconChevronUp, useIcons } from 'twenty-ui/display';
import { getSettingsPath } from '~/utils/navigation/getSettingsPath';
@@ -131,7 +130,7 @@ export const SettingsDataModelOverviewObject = ({
})}
>
{Icon && <Icon size={theme.icon.size.md} />}
{capitalize(objectMetadataItem.namePlural)}
{objectMetadataItem.labelPlural}
</StyledObjectLink>
<StyledObjectInstanceCount> · {totalCount}</StyledObjectInstanceCount>
</StyledObjectName>
@@ -44,7 +44,7 @@ export const SettingsRolePermissionsObjectLevelTableRow = ({
const Icon = getIcon(objectMetadataItem.icon);
const objectLabel = objectMetadataItem.labelPlural;
const objectLabelPlural = objectMetadataItem.labelPlural;
return (
<TableRow
@@ -62,15 +62,15 @@ export const SettingsRolePermissionsObjectLevelTableRow = ({
stroke={theme.icon.stroke.sm}
/>
)}
<StyledNameLabel title={objectLabel}>
<OverflowingTextWithTooltip text={objectLabel} />
<StyledNameLabel title={objectLabelPlural}>
<OverflowingTextWithTooltip text={objectLabelPlural} />
</StyledNameLabel>
</StyledNameTableCell>
<TableCell>
<SettingsRolePermissionsObjectLevelOverrideCellContainer
objectPermissions={objectPermission}
roleId={roleId}
objectLabel={objectLabel}
objectLabel={objectLabelPlural}
/>
</TableCell>
<TableCell align={'right'}>
@@ -41,7 +41,7 @@ export const SettingsRolePermissionsObjectLevelObjectFormObjectLevel = ({
return null;
}
const objectLabel = objectMetadataItem.labelPlural;
const objectLabelPlural = objectMetadataItem.labelPlural;
const updateObjectPermission = (
permissionKey: SettingsRoleObjectPermissionKey,
@@ -85,7 +85,7 @@ export const SettingsRolePermissionsObjectLevelObjectFormObjectLevel = ({
[
{
key: 'canReadObjectRecords',
label: t`See ${objectLabel}`,
label: t`See ${objectLabelPlural}`,
value: settingsDraftRoleObjectPermissions.canReadObjectRecords,
setValue: (value: boolean | null) => {
updateObjectPermission('canReadObjectRecords', value);
@@ -93,7 +93,7 @@ export const SettingsRolePermissionsObjectLevelObjectFormObjectLevel = ({
},
{
key: 'canUpdateObjectRecords',
label: t`Edit ${objectLabel}`,
label: t`Edit ${objectLabelPlural}`,
value: settingsDraftRoleObjectPermissions.canUpdateObjectRecords,
setValue: (value: boolean | null) => {
updateObjectPermission('canUpdateObjectRecords', value);
@@ -101,7 +101,7 @@ export const SettingsRolePermissionsObjectLevelObjectFormObjectLevel = ({
},
{
key: 'canSoftDeleteObjectRecords',
label: t`Delete ${objectLabel}`,
label: t`Delete ${objectLabelPlural}`,
value: settingsDraftRoleObjectPermissions.canSoftDeleteObjectRecords,
setValue: (value: boolean | null) => {
updateObjectPermission('canSoftDeleteObjectRecords', value);
@@ -109,7 +109,7 @@ export const SettingsRolePermissionsObjectLevelObjectFormObjectLevel = ({
},
{
key: 'canDestroyObjectRecords',
label: t`Destroy ${objectLabel}`,
label: t`Destroy ${objectLabelPlural}`,
value: settingsDraftRoleObjectPermissions.canDestroyObjectRecords,
setValue: (value: boolean | null) => {
updateObjectPermission('canDestroyObjectRecords', value);