Ensure record fields uniqueness across widgets (#16781)
This PR dissociates record inputs so that several inputs for the same record field can live on the same page. ## Simple values demo https://github.com/user-attachments/assets/a8c224d8-4cd6-4fe3-9cf8-01f6bdd2fca9 ## Relations demo https://github.com/user-attachments/assets/87267a8b-8ce5-41ce-8a78-cba2384828bb ## Doesn't break Record Table https://github.com/user-attachments/assets/bcdd2b05-7cb4-4ed2-9093-58be3e04e43e ## Doesn't break Show Page https://github.com/user-attachments/assets/f9ab9e14-012c-451e-a35f-01a165523f95
This commit is contained in:
committed by
GitHub
parent
6a4974e285
commit
06d0ac13c4
+7
-4
@@ -1,3 +1,4 @@
|
||||
import { useRecordFieldsScopeContextOrThrow } from '@/object-record/record-field-list/contexts/RecordFieldsScopeContext';
|
||||
import { FieldContext } from '@/object-record/record-field/ui/contexts/FieldContext';
|
||||
import { getDropdownFocusIdForRecordField } from '@/object-record/utils/getDropdownFocusIdForRecordField';
|
||||
import { useSetActiveDropdownFocusIdAndMemorizePrevious } from '@/ui/layout/dropdown/hooks/useSetFocusedDropdownIdAndMemorizePrevious';
|
||||
@@ -5,15 +6,17 @@ import { useContext, useEffect } from 'react';
|
||||
|
||||
export const StorybookFieldInputDropdownFocusIdSetterEffect = () => {
|
||||
const { recordId, fieldDefinition } = useContext(FieldContext);
|
||||
const { scopeInstanceId } = useRecordFieldsScopeContextOrThrow();
|
||||
|
||||
const { setActiveDropdownFocusIdAndMemorizePrevious } =
|
||||
useSetActiveDropdownFocusIdAndMemorizePrevious();
|
||||
|
||||
const fieldDropdownFocusIdTableCell = getDropdownFocusIdForRecordField(
|
||||
const fieldDropdownFocusIdTableCell = getDropdownFocusIdForRecordField({
|
||||
recordId,
|
||||
fieldDefinition.fieldMetadataId,
|
||||
'table-cell',
|
||||
);
|
||||
fieldMetadataId: fieldDefinition.fieldMetadataId,
|
||||
componentType: 'table-cell',
|
||||
instanceId: scopeInstanceId,
|
||||
});
|
||||
|
||||
useEffect(() => {
|
||||
setActiveDropdownFocusIdAndMemorizePrevious(fieldDropdownFocusIdTableCell);
|
||||
|
||||
Reference in New Issue
Block a user