[BUG] Record settings not saved (#9762)
# Introduction By initially fixing this Fixes #9381, discovered other behavior that have been fix. Overall we encountered a bug that corrupts a workspace and make the browser + api crash This issue https://github.com/twentyhq/core-team-issues/issues/25 suggests a refactor that has final save button instead of auto-save ## `labelIdentifierFieldMetadataId` form default value The default value resulted in being undefined, resulting in react hook form `labelIdentifierFieldMetadataId` is required field error. ### Fix Setting default value fallback to `null` as field is `nullable` ## `SettingsDataModelObjectSettingsFormCard` never triggers form Unless I'm mistaken in production touching any fields within `SettingsDataModelObjectSettingsFormCard` would never trigger form submission until you also modify `SettingsDataModelObjectAboutForm` fields ### Fix Provide and apply `onblur` that triggers the form on both `SettingsDataModelObjectSettingsFormCard` inputs ## Wrong default `labelIdentifierFieldMetadataItem` on first page render When landing on the page for the first time, if a custom `labelIdentifierFieldMetadataItem` has been set it won't be computed within the `PreviewCard`. Occurs when `labelIdentifierFieldMetadataId` form default value is undefined, due to `any` injection. ### Fix In the `getLabelIdentifierFieldMetadataItem` check the `labelIdentifierFieldMetadataIdFormValue` definition, if undefined fallback to current `objectMetadata` identifier --------- Co-authored-by: Charles Bochet <charles@twenty.com>
This commit is contained in:
@ -1,11 +1,23 @@
|
||||
import { isLabelIdentifierField } from '@/object-metadata/utils/isLabelIdentifierField';
|
||||
|
||||
describe('isLabelIdentifierField', () => {
|
||||
it('should work as expected', () => {
|
||||
it('should not find unknown labelIdentifier', () => {
|
||||
const res = isLabelIdentifierField({
|
||||
fieldMetadataItem: { id: 'fieldId', name: 'fieldName' },
|
||||
objectMetadataItem: {},
|
||||
objectMetadataItem: {
|
||||
labelIdentifierFieldMetadataId: 'unknown',
|
||||
},
|
||||
});
|
||||
expect(res).toBe(false);
|
||||
});
|
||||
|
||||
it('should find known labelIdentifier', () => {
|
||||
const res = isLabelIdentifierField({
|
||||
fieldMetadataItem: { id: 'fieldId', name: 'fieldName' },
|
||||
objectMetadataItem: {
|
||||
labelIdentifierFieldMetadataId: 'fieldId',
|
||||
},
|
||||
});
|
||||
expect(res).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user