Fix field item type tag (#16860)

# Introduction
This has been fixed on main already 1 hour ago, this PR now only passes
the field application id instead of the object applicationId that could
be different for example when creating a custom field on a standard
object

For the moment not introducing any logic around application integrity
directly and still relying on the isCustom and standardId definition
This will have to be refactored once we deprecate the standardId
This commit is contained in:
Paul Rastoin
2025-12-30 16:02:07 +01:00
committed by GitHub
parent aac70c679f
commit 1128331cc1
24 changed files with 62 additions and 147 deletions
@@ -2,7 +2,7 @@ import { useDeleteOneFieldMetadataItem } from '@/object-metadata/hooks/useDelete
import { useFieldMetadataItem } from '@/object-metadata/hooks/useFieldMetadataItem';
import { useGetRelationMetadata } from '@/object-metadata/hooks/useGetRelationMetadata';
import { isLabelIdentifierField } from '@/object-metadata/utils/isLabelIdentifierField';
import { isObjectMetadataSettingsReadOnly } from '@/object-record/read-only/utils/isObjectMetadataSettingsReadOnly';
import { isObjectMetadataReadOnly } from '@/object-record/read-only/utils/isObjectMetadataReadOnly';
import { SettingsItemTypeTag } from '@/settings/components/SettingsItemTypeTag';
import { RELATION_TYPES } from '@/settings/data-model/constants/RelationTypes';
import { SettingsObjectFieldInactiveActionDropdown } from '@/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown';
@@ -92,7 +92,7 @@ export const SettingsObjectFieldItemTableRow = ({
const { fieldMetadataItem, objectMetadataItem } =
settingsObjectDetailTableItem;
const readonly = isObjectMetadataSettingsReadOnly({
const readonly = isObjectMetadataReadOnly({
objectMetadataItem,
});
@@ -204,9 +204,8 @@ export const SettingsObjectFieldItemTableRow = ({
<TableCell>
<SettingsItemTypeTag
item={{
applicationId: fieldMetadataItem.applicationId,
isCustom: fieldMetadataItem.isCustom ?? undefined,
isRemote: objectMetadataItem.isRemote,
applicationId: objectMetadataItem.applicationId,
}}
/>
</TableCell>
@@ -3,7 +3,7 @@ import { useFieldMetadataItem } from '@/object-metadata/hooks/useFieldMetadataIt
import { useGetRelationMetadata } from '@/object-metadata/hooks/useGetRelationMetadata';
import { type FieldMetadataItem } from '@/object-metadata/types/FieldMetadataItem';
import { type ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataItem';
import { isObjectMetadataSettingsReadOnly } from '@/object-record/read-only/utils/isObjectMetadataSettingsReadOnly';
import { isObjectMetadataReadOnly } from '@/object-record/read-only/utils/isObjectMetadataReadOnly';
import { SettingsItemTypeTag } from '@/settings/components/SettingsItemTypeTag';
import { RELATION_TYPES } from '@/settings/data-model/constants/RelationTypes';
import { SettingsObjectFieldInactiveActionDropdown } from '@/settings/data-model/object-details/components/SettingsObjectFieldDisabledActionDropdown';
@@ -112,7 +112,7 @@ export const SettingsObjectRelationItemTableRow = ({
[fieldMetadataItem, getRelationMetadata],
) ?? {};
const readonly = isObjectMetadataSettingsReadOnly({
const readonly = isObjectMetadataReadOnly({
objectMetadataItem,
});
@@ -1,5 +1,6 @@
import { useUpdateOneObjectMetadataItem } from '@/object-metadata/hooks/useUpdateOneObjectMetadataItem';
import { type ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataItem';
import { isObjectMetadataReadOnly } from '@/object-record/read-only/utils/isObjectMetadataReadOnly';
import { SettingsDataModelObjectAboutForm } from '@/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm';
import {
type SettingsDataModelObjectAboutFormValues,
@@ -11,7 +12,6 @@ import { useSetRecoilState } from 'recoil';
import { SettingsPath } from 'twenty-shared/types';
import { useNavigateSettings } from '~/hooks/useNavigateSettings';
import { updatedObjectNamePluralState } from '~/pages/settings/data-model/states/updatedObjectNamePluralState';
import { isObjectMetadataSettingsReadOnly } from '@/object-record/read-only/utils/isObjectMetadataSettingsReadOnly';
type SettingsUpdateDataModelObjectAboutFormProps = {
objectMetadataItem: ObjectMetadataItem;
@@ -20,7 +20,7 @@ type SettingsUpdateDataModelObjectAboutFormProps = {
export const SettingsUpdateDataModelObjectAboutForm = ({
objectMetadataItem,
}: SettingsUpdateDataModelObjectAboutFormProps) => {
const readonly = isObjectMetadataSettingsReadOnly({
const readonly = isObjectMetadataReadOnly({
objectMetadataItem,
});
const navigate = useNavigateSettings();
@@ -1,5 +1,5 @@
import { type ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataItem';
import { isObjectMetadataSettingsReadOnly } from '@/object-record/read-only/utils/isObjectMetadataSettingsReadOnly';
import { isObjectMetadataReadOnly } from '@/object-record/read-only/utils/isObjectMetadataReadOnly';
import { SettingsObjectRelationsTable } from '@/settings/data-model/object-details/components/SettingsObjectRelationsTable';
import styled from '@emotion/styled';
import { useLingui } from '@lingui/react/macro';
@@ -22,11 +22,11 @@ type ObjectFieldsProps = {
};
export const ObjectFields = ({ objectMetadataItem }: ObjectFieldsProps) => {
const readonly = isObjectMetadataSettingsReadOnly({
const { t } = useLingui();
const readonly = isObjectMetadataReadOnly({
objectMetadataItem,
});
const { t } = useLingui();
const objectLabelSingular = objectMetadataItem.labelSingular;
const hasRelations = objectMetadataItem.fields.some(
@@ -2,7 +2,7 @@ import { type ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataI
import { useDeleteOneObjectMetadataItem } from '@/object-metadata/hooks/useDeleteOneObjectMetadataItem';
import { useUpdateOneObjectMetadataItem } from '@/object-metadata/hooks/useUpdateOneObjectMetadataItem';
import { isObjectMetadataSettingsReadOnly } from '@/object-record/read-only/utils/isObjectMetadataSettingsReadOnly';
import { isObjectMetadataReadOnly } from '@/object-record/read-only/utils/isObjectMetadataReadOnly';
import { SettingsUpdateDataModelObjectAboutForm } from '@/settings/data-model/object-details/components/SettingsUpdateDataModelObjectAboutForm';
import { SettingsDataModelObjectSettingsFormCard } from '@/settings/data-model/objects/forms/components/SettingsDataModelObjectSettingsFormCard';
import { useSnackBar } from '@/ui/feedback/snack-bar-manager/hooks/useSnackBar';
@@ -45,15 +45,14 @@ export const ObjectSettings = ({
setIsDeleting,
}: ObjectSettingsProps) => {
const { t } = useLingui();
const readonly = isObjectMetadataSettingsReadOnly({
objectMetadataItem,
});
const navigate = useNavigateSettings();
const { updateOneObjectMetadataItem } = useUpdateOneObjectMetadataItem();
const { deleteOneObjectMetadataItem } = useDeleteOneObjectMetadataItem();
const { enqueueSuccessSnackBar } = useSnackBar();
const { openModal, closeModal } = useModal();
const isReadOnly = isObjectMetadataReadOnly({ objectMetadataItem });
const handleDisable = async () => {
const result = await updateOneObjectMetadataItem({
idToUpdate: objectMetadataItem.id,
@@ -110,7 +109,7 @@ export const ObjectSettings = ({
/>
</Section>
</StyledFormSection>
{!readonly && (
{!isReadOnly && (
<StyledFormSection>
<Section>
<H2Title
@@ -2,7 +2,7 @@ import { useUpdateOneObjectMetadataItem } from '@/object-metadata/hooks/useUpdat
import { type ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataItem';
import { getActiveFieldMetadataItems } from '@/object-metadata/utils/getActiveFieldMetadataItems';
import { objectMetadataItemSchema } from '@/object-metadata/validation-schemas/objectMetadataItemSchema';
import { isObjectMetadataSettingsReadOnly } from '@/object-record/read-only/utils/isObjectMetadataSettingsReadOnly';
import { isObjectMetadataReadOnly } from '@/object-record/read-only/utils/isObjectMetadataReadOnly';
import { Select } from '@/ui/input/components/Select';
import styled from '@emotion/styled';
import { zodResolver } from '@hookform/resolvers/zod';
@@ -42,7 +42,7 @@ const StyledContainer = styled.div`
export const SettingsDataModelObjectIdentifiersForm = ({
objectMetadataItem,
}: SettingsDataModelObjectIdentifiersFormProps) => {
const readonly = isObjectMetadataSettingsReadOnly({
const readonly = isObjectMetadataReadOnly({
objectMetadataItem,
});
const formConfig = useForm<SettingsDataModelObjectIdentifiersFormValues>({
@@ -27,10 +27,10 @@ type ManagedItemTagInfo = {
};
export const getItemTagInfo = ({
objectMetadataItem: { isCustom, isRemote, applicationId },
item: { isCustom, isRemote, applicationId },
workspaceCustomApplicationId,
}: {
objectMetadataItem: {
item: {
isCustom?: boolean;
isRemote?: boolean;
applicationId?: string | null;