Stop using labelIdentifier when adding record card (#10805)

When creating an object from kanban, we are using
`labelIdentifier.toLowerCase()` for the labelIdentifier field.
Issue is that labelIdentifier is translated.

Using `labelIdentifierField.name` instead.
This commit is contained in:
Thomas Trompette
2025-03-12 15:07:35 +01:00
committed by GitHub
parent 5ddc34b182
commit 0d7484389e
4 changed files with 10 additions and 60 deletions

View File

@ -138,20 +138,10 @@ export const RecordBoardCardHeader = ({
autoFocus autoFocus
value={newLabelValue} value={newLabelValue}
onInputEnter={() => onInputEnter={() =>
handleInputEnter( handleInputEnter(newLabelValue, position, onCreateSuccess)
identifierFieldDefinition.label ?? '',
newLabelValue,
position,
onCreateSuccess,
)
} }
onBlur={() => onBlur={() =>
handleBlur( handleBlur(newLabelValue, position, onCreateSuccess)
identifierFieldDefinition.label ?? '',
newLabelValue,
position,
onCreateSuccess,
)
} }
onChange={(text: string) => setNewLabelValue(text)} onChange={(text: string) => setNewLabelValue(text)}
placeholder={identifierFieldDefinition.label} placeholder={identifierFieldDefinition.label}

View File

@ -73,7 +73,6 @@ export const useAddNewCard = ({
const createRecord = useCallback( const createRecord = useCallback(
( (
labelIdentifier: string,
labelValue: string, labelValue: string,
position: 'first' | 'last', position: 'first' | 'last',
isOpportunity: boolean, isOpportunity: boolean,
@ -112,7 +111,7 @@ export const useAddNewCard = ({
...(isOpportunity ...(isOpportunity
? { companyId: company?.id, name: company?.name } ? { companyId: company?.id, name: company?.name }
: { : {
[labelIdentifier.toLowerCase()]: computedLabelIdentifierValue, [labelIdentifierField.name]: computedLabelIdentifierValue,
}), }),
}); });
} }
@ -129,7 +128,6 @@ export const useAddNewCard = ({
const handleAddNewCardClick = useRecoilCallback( const handleAddNewCardClick = useRecoilCallback(
({ set }) => ({ set }) =>
( (
labelIdentifier: string,
labelValue: string, labelValue: string,
position: 'first' | 'last', position: 'first' | 'last',
isOpportunity: boolean, isOpportunity: boolean,
@ -142,7 +140,7 @@ export const useAddNewCard = ({
SingleRecordPickerHotkeyScope.SingleRecordPicker, SingleRecordPickerHotkeyScope.SingleRecordPicker,
); );
} else { } else {
createRecord(labelIdentifier, labelValue, position, isOpportunity); createRecord(labelValue, position, isOpportunity);
} }
}, },
[ [
@ -184,25 +182,17 @@ export const useAddNewCard = ({
); );
const handleCreate = ( const handleCreate = (
labelIdentifier: string,
labelValue: string, labelValue: string,
position: 'first' | 'last', position: 'first' | 'last',
onCreateSuccess?: () => void, onCreateSuccess?: () => void,
) => { ) => {
if (labelValue.trim() !== '' && position !== undefined) { if (labelValue.trim() !== '' && position !== undefined) {
handleAddNewCardClick( handleAddNewCardClick(labelValue.trim(), position, false, '');
labelIdentifier,
labelValue.trim(),
position,
false,
'',
);
onCreateSuccess?.(); onCreateSuccess?.();
} }
}; };
const handleBlur = ( const handleBlur = (
labelIdentifier: string,
labelValue: string, labelValue: string,
position: 'first' | 'last', position: 'first' | 'last',
onCreateSuccess?: () => void, onCreateSuccess?: () => void,
@ -210,17 +200,16 @@ export const useAddNewCard = ({
if (labelValue.trim() === '') { if (labelValue.trim() === '') {
onCreateSuccess?.(); onCreateSuccess?.();
} else { } else {
handleCreate(labelIdentifier, labelValue, position, onCreateSuccess); handleCreate(labelValue, position, onCreateSuccess);
} }
}; };
const handleInputEnter = ( const handleInputEnter = (
labelIdentifier: string,
labelValue: string, labelValue: string,
position: 'first' | 'last', position: 'first' | 'last',
onCreateSuccess?: () => void, onCreateSuccess?: () => void,
) => { ) => {
handleCreate(labelIdentifier, labelValue, position, onCreateSuccess); handleCreate(labelValue, position, onCreateSuccess);
}; };
const handleEntitySelect = useCallback( const handleEntitySelect = useCallback(
@ -230,7 +219,7 @@ export const useAddNewCard = ({
columnId?: string, columnId?: string,
) => { ) => {
const columnDefinitionId = getColumnDefinitionId(columnId); const columnDefinitionId = getColumnDefinitionId(columnId);
createRecord('', '', position, true, company); createRecord('', position, true, company);
handleCreateSuccess(position, columnDefinitionId, true); handleCreateSuccess(position, columnDefinitionId, true);
}, },
[createRecord, handleCreateSuccess, getColumnDefinitionId], [createRecord, handleCreateSuccess, getColumnDefinitionId],

View File

@ -1,16 +1,6 @@
import { useAddNewCard } from '@/object-record/record-board/record-board-column/hooks/useAddNewCard'; import { useAddNewCard } from '@/object-record/record-board/record-board-column/hooks/useAddNewCard';
import { recordBoardVisibleFieldDefinitionsComponentSelector } from '@/object-record/record-board/states/selectors/recordBoardVisibleFieldDefinitionsComponentSelector';
import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2';
export const useColumnNewCardActions = (columnId: string) => { export const useColumnNewCardActions = (columnId: string) => {
const visibleFieldDefinitions = useRecoilComponentValueV2(
recordBoardVisibleFieldDefinitionsComponentSelector,
);
const labelIdentifierField = visibleFieldDefinitions.find(
(field) => field.isLabelIdentifier,
);
const { handleAddNewCardClick } = useAddNewCard({ const { handleAddNewCardClick } = useAddNewCard({
recordPickerComponentInstanceId: `add-new-card-record-picker-column-${columnId}`, recordPickerComponentInstanceId: `add-new-card-record-picker-column-${columnId}`,
}); });
@ -19,13 +9,7 @@ export const useColumnNewCardActions = (columnId: string) => {
position: 'first' | 'last', position: 'first' | 'last',
isOpportunity: boolean, isOpportunity: boolean,
) => { ) => {
handleAddNewCardClick( handleAddNewCardClick('', position, isOpportunity, columnId);
labelIdentifierField?.label ?? '',
'',
position,
isOpportunity,
columnId,
);
}; };
return { return {

View File

@ -1,7 +1,6 @@
import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular'; import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular';
import { useAddNewCard } from '@/object-record/record-board/record-board-column/hooks/useAddNewCard'; import { useAddNewCard } from '@/object-record/record-board/record-board-column/hooks/useAddNewCard';
import { useIsOpportunitiesCompanyFieldDisabled } from '@/object-record/record-board/record-board-column/hooks/useIsOpportunitiesCompanyFieldDisabled'; import { useIsOpportunitiesCompanyFieldDisabled } from '@/object-record/record-board/record-board-column/hooks/useIsOpportunitiesCompanyFieldDisabled';
import { recordBoardVisibleFieldDefinitionsComponentSelector } from '@/object-record/record-board/states/selectors/recordBoardVisibleFieldDefinitionsComponentSelector';
import { visibleRecordGroupIdsComponentFamilySelector } from '@/object-record/record-group/states/selectors/visibleRecordGroupIdsComponentFamilySelector'; import { visibleRecordGroupIdsComponentFamilySelector } from '@/object-record/record-group/states/selectors/visibleRecordGroupIdsComponentFamilySelector';
import { RecordGroupDefinition } from '@/object-record/record-group/types/RecordGroupDefinition'; import { RecordGroupDefinition } from '@/object-record/record-group/types/RecordGroupDefinition';
import { RecordIndexPageKanbanAddMenuItem } from '@/object-record/record-index/components/RecordIndexPageKanbanAddMenuItem'; import { RecordIndexPageKanbanAddMenuItem } from '@/object-record/record-index/components/RecordIndexPageKanbanAddMenuItem';
@ -12,7 +11,6 @@ import { DropdownMenuItemsContainer } from '@/ui/layout/dropdown/components/Drop
import { useDropdown } from '@/ui/layout/dropdown/hooks/useDropdown'; import { useDropdown } from '@/ui/layout/dropdown/hooks/useDropdown';
import { PageAddButton } from '@/ui/layout/page/components/PageAddButton'; import { PageAddButton } from '@/ui/layout/page/components/PageAddButton';
import { useRecoilComponentFamilyValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentFamilyValueV2'; import { useRecoilComponentFamilyValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentFamilyValueV2';
import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2';
import { ViewType } from '@/views/types/ViewType'; import { ViewType } from '@/views/types/ViewType';
import { useCallback } from 'react'; import { useCallback } from 'react';
import { useRecoilValue } from 'recoil'; import { useRecoilValue } from 'recoil';
@ -20,7 +18,7 @@ import { useRecoilValue } from 'recoil';
export const RecordIndexPageKanbanAddButton = () => { export const RecordIndexPageKanbanAddButton = () => {
const dropdownId = `record-index-page-add-button-dropdown`; const dropdownId = `record-index-page-add-button-dropdown`;
const { recordIndexId, objectMetadataItem } = useRecordIndexContextOrThrow(); const { objectMetadataItem } = useRecordIndexContextOrThrow();
const visibleRecordGroupIds = useRecoilComponentFamilyValueV2( const visibleRecordGroupIds = useRecoilComponentFamilyValueV2(
visibleRecordGroupIdsComponentFamilySelector, visibleRecordGroupIdsComponentFamilySelector,
@ -37,15 +35,6 @@ export const RecordIndexPageKanbanAddButton = () => {
const isOpportunity = const isOpportunity =
objectMetadataItem.nameSingular === CoreObjectNameSingular.Opportunity; objectMetadataItem.nameSingular === CoreObjectNameSingular.Opportunity;
const visibleFieldDefinitions = useRecoilComponentValueV2(
recordBoardVisibleFieldDefinitionsComponentSelector,
recordIndexId,
);
const labelIdentifierField = visibleFieldDefinitions.find(
(field) => field.isLabelIdentifier,
);
const { closeDropdown } = useDropdown(dropdownId); const { closeDropdown } = useDropdown(dropdownId);
const { isOpportunitiesCompanyFieldDisabled } = const { isOpportunitiesCompanyFieldDisabled } =
useIsOpportunitiesCompanyFieldDisabled(); useIsOpportunitiesCompanyFieldDisabled();
@ -58,7 +47,6 @@ export const RecordIndexPageKanbanAddButton = () => {
const isOpportunityEnabled = const isOpportunityEnabled =
isOpportunity && !isOpportunitiesCompanyFieldDisabled; isOpportunity && !isOpportunitiesCompanyFieldDisabled;
handleAddNewCardClick( handleAddNewCardClick(
labelIdentifierField?.label ?? '',
'', '',
'first', 'first',
isOpportunityEnabled, isOpportunityEnabled,
@ -70,7 +58,6 @@ export const RecordIndexPageKanbanAddButton = () => {
isOpportunity, isOpportunity,
handleAddNewCardClick, handleAddNewCardClick,
closeDropdown, closeDropdown,
labelIdentifierField,
isOpportunitiesCompanyFieldDisabled, isOpportunitiesCompanyFieldDisabled,
], ],
); );