diff --git a/packages/twenty-front/src/modules/settings/data-model/fields/forms/components/SettingsDataModelFieldIconLabelForm.tsx b/packages/twenty-front/src/modules/settings/data-model/fields/forms/components/SettingsDataModelFieldIconLabelForm.tsx
index 1b87c1ac7..934425ff7 100644
--- a/packages/twenty-front/src/modules/settings/data-model/fields/forms/components/SettingsDataModelFieldIconLabelForm.tsx
+++ b/packages/twenty-front/src/modules/settings/data-model/fields/forms/components/SettingsDataModelFieldIconLabelForm.tsx
@@ -105,7 +105,6 @@ export const SettingsDataModelFieldIconLabelForm = ({
const fillNameFromLabel = (label: string) => {
isDefined(label) &&
- fieldMetadataItem?.isCustom &&
setValue('name', computeMetadataNameFromLabel(label), {
shouldDirty: true,
});
@@ -141,7 +140,11 @@ export const SettingsDataModelFieldIconLabelForm = ({
}
}}
error={getErrorMessageFromError(errors.label?.message)}
- disabled={isLabelSyncedWithName === true}
+ disabled={
+ isLabelSyncedWithName === true &&
+ fieldMetadataItem &&
+ !fieldMetadataItem?.isCustom
+ }
maxLength={maxLength}
fullWidth
/>
diff --git a/packages/twenty-front/src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx b/packages/twenty-front/src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
index 6106d2cf7..6d73859b5 100644
--- a/packages/twenty-front/src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
+++ b/packages/twenty-front/src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx
@@ -100,6 +100,7 @@ export const SettingsDataModelObjectAboutForm = ({
setValue('labelPlural', labelPluralFromSingularLabel, {
shouldDirty: true,
});
+ fillNamePluralFromLabelPlural(labelPluralFromSingularLabel);
};
const fillNameSingularFromLabelSingular = (
@@ -161,7 +162,11 @@ export const SettingsDataModelObjectAboutForm = ({
}
}}
onBlur={() => onNewDirtyField?.()}
- disabled={!objectMetadataItem?.isCustom && isLabelSyncedWithName}
+ disabled={
+ objectMetadataItem &&
+ !objectMetadataItem?.isCustom &&
+ isLabelSyncedWithName
+ }
fullWidth
maxLength={OBJECT_NAME_MAXIMUM_LENGTH}
/>
@@ -187,7 +192,11 @@ export const SettingsDataModelObjectAboutForm = ({
}
}}
onBlur={() => onNewDirtyField?.()}
- disabled={!objectMetadataItem?.isCustom && isLabelSyncedWithName}
+ disabled={
+ objectMetadataItem &&
+ !objectMetadataItem?.isCustom &&
+ isLabelSyncedWithName
+ }
fullWidth
maxLength={OBJECT_NAME_MAXIMUM_LENGTH}
/>
@@ -293,37 +302,40 @@ export const SettingsDataModelObjectAboutForm = ({
),
)}
-
- (
-
- {
- onChange(value);
- onNewDirtyField?.();
+ {(!objectMetadataItem || objectMetadataItem?.isCustom) && (
+
+ (
+
+ {
+ onChange(value);
+ onNewDirtyField?.();
- if (
- value === true &&
- isDefined(objectMetadataItem) &&
- objectMetadataItem.isCustom
- ) {
- fillNamePluralFromLabelPlural(labelPlural);
- fillNameSingularFromLabelSingular(labelSingular);
- }
- }}
- />
-
- )}
- />
-
+ if (
+ value === true &&
+ ((isDefined(objectMetadataItem) &&
+ objectMetadataItem.isCustom) ||
+ !isDefined(objectMetadataItem))
+ ) {
+ fillNamePluralFromLabelPlural(labelPlural);
+ fillNameSingularFromLabelSingular(labelSingular);
+ }
+ }}
+ />
+
+ )}
+ />
+
+ )}
diff --git a/packages/twenty-front/src/pages/settings/profile/appearance/components/LocalePicker.tsx b/packages/twenty-front/src/pages/settings/profile/appearance/components/LocalePicker.tsx
index d3902630e..6660cb3a1 100644
--- a/packages/twenty-front/src/pages/settings/profile/appearance/components/LocalePicker.tsx
+++ b/packages/twenty-front/src/pages/settings/profile/appearance/components/LocalePicker.tsx
@@ -9,10 +9,10 @@ import { Select } from '@/ui/input/components/Select';
import { useRefreshObjectMetadataItems } from '@/object-metadata/hooks/useRefreshObjectMetadataItem';
import { useLingui } from '@lingui/react/macro';
-import { dynamicActivate } from '~/utils/i18n/dynamicActivate';
-import { logError } from '~/utils/logError';
import { APP_LOCALES } from 'twenty-shared/translations';
import { isDefined } from 'twenty-shared/utils';
+import { dynamicActivate } from '~/utils/i18n/dynamicActivate';
+import { logError } from '~/utils/logError';
const StyledContainer = styled.div`
display: flex;
@@ -62,7 +62,7 @@ export const LocalePicker = () => {
await refreshObjectMetadataItems();
};
- const localeOptions: Array<{
+ const unsortedLocaleOptions: Array<{
label: string;
value: (typeof APP_LOCALES)[keyof typeof APP_LOCALES];
}> = [
@@ -187,13 +187,18 @@ export const LocalePicker = () => {
value: APP_LOCALES['vi-VN'],
},
];
+
if (isDebugMode) {
- localeOptions.push({
+ unsortedLocaleOptions.push({
label: t`Pseudo-English`,
value: APP_LOCALES['pseudo-en'],
});
}
+ const localeOptions = [...unsortedLocaleOptions].sort((a, b) =>
+ a.label.localeCompare(b.label),
+ );
+
return (