Skip to content

Commit 8a13bc3

Browse files
committed
refactor:changed uid key to backupFieldUid in mapping to avoid duplicate uid issues
1 parent 39733b1 commit 8a13bc3

File tree

2 files changed

+31
-32
lines changed

2 files changed

+31
-32
lines changed

api/src/utils/content-type-creator.utils.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -706,9 +706,9 @@ const mergeFields = async (schema1: any[], schema2: any[]): Promise<any[]> => {
706706
fld.uid === field2.uid &&
707707
fld.data_type === field2.data_type
708708
);
709-
if (!exists) {
710-
result.push(field2);
711-
}
709+
result?.push({
710+
...field2
711+
});
712712

713713
}
714714

ui/src/components/ContentMapper/index.tsx

Lines changed: 28 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -368,7 +368,7 @@ const ContentMapper = forwardRef(({handleStepChange}: contentMapperProps, ref: R
368368
if (!updatedSelectedOptions?.includes?.(schema?.display_name)) {
369369
updatedSelectedOptions.push(schema?.display_name);
370370
}
371-
updatedExstingField[row?.uid] = {
371+
updatedExstingField[row?.backupFieldUid] = {
372372
label: schema?.display_name,
373373
value: schema
374374
};
@@ -382,7 +382,7 @@ const ContentMapper = forwardRef(({handleStepChange}: contentMapperProps, ref: R
382382
if (!updatedSelectedOptions?.includes?.(`${schema?.display_name} > ${childSchema?.display_name}`)) {
383383
updatedSelectedOptions.push(`${schema?.display_name} > ${childSchema?.display_name}`);
384384
}
385-
updatedExstingField[row?.uid] = {
385+
updatedExstingField[row?.backupFieldUid] = {
386386
label: `${schema?.display_name} > ${childSchema?.display_name}`,
387387
value: childSchema
388388
}
@@ -397,7 +397,7 @@ const ContentMapper = forwardRef(({handleStepChange}: contentMapperProps, ref: R
397397
if (!updatedSelectedOptions?.includes?.(`${schema?.display_name} > ${childSchema?.display_name} > ${nestedSchema?.display_name}`)) {
398398
updatedSelectedOptions.push(`${schema?.display_name} > ${childSchema?.display_name} > ${nestedSchema?.display_name}`);
399399
}
400-
updatedExstingField[row?.uid] = {
400+
updatedExstingField[row?.backupFieldUid] = {
401401
label: `${schema?.display_name} > ${childSchema?.display_name} > ${nestedSchema?.display_name}`,
402402
value: nestedSchema
403403
}
@@ -412,7 +412,7 @@ const ContentMapper = forwardRef(({handleStepChange}: contentMapperProps, ref: R
412412
if (!updatedSelectedOptions?.includes?.(`${schema?.display_name} > ${childSchema?.display_name} > ${nestedSchema?.display_name} > ${nestedChild?.display_name}`)) {
413413
updatedSelectedOptions.push(`${schema?.display_name} > ${childSchema?.display_name} > ${nestedSchema?.display_name} > ${nestedChild?.display_name}`);
414414
}
415-
updatedExstingField[row?.uid] = {
415+
updatedExstingField[row?.backupFieldUid] = {
416416
label: `${schema?.display_name} > ${childSchema?.display_name} > ${nestedSchema?.display_name} > ${nestedChild?.display_name}`,
417417
value: nestedChild
418418
}
@@ -1130,37 +1130,36 @@ const ContentMapper = forwardRef(({handleStepChange}: contentMapperProps, ref: R
11301130
);
11311131
};
11321132

1133-
const handleFieldChange = (selectedValue: FieldTypes, rowIndex: string, contentstackFieldUid: string) => {
1133+
const handleFieldChange = (selectedValue: FieldTypes, rowIndex: string, contentstackFieldUid: string, backupFieldUid: string) => {
11341134
setIsDropDownChanged(true);
1135-
const previousSelectedValue = existingField[rowIndex]?.label;
1135+
const previousSelectedValue = existingField[backupFieldUid]?.label;
11361136
const groupArray = nestedList?.filter(item =>
11371137
item?.child?.some(e => e?.id)
11381138
)
11391139

11401140
if(groupArray?.[0]?.child && previousSelectedValue !== selectedValue?.label && groupArray?.[0]?.uid === rowIndex){
11411141
for(const item of groupArray?.[0]?.child ?? []){
1142-
deletedExstingField[item?.uid] = {
1142+
deletedExstingField[item?.backupFieldUid] = {
11431143
label:item?.uid,
1144-
value:existingField[item?.uid]
1144+
value:existingField[item?.backupFieldUid]
11451145

11461146
}
11471147
setIsFieldDeleted(true);
1148-
const index = selectedOptions?.indexOf(existingField[item?.uid]?.value?.label);
1148+
const index = selectedOptions?.indexOf(existingField[item?.backupFieldUid]?.value?.label);
11491149

11501150
if(index > -1){
11511151
selectedOptions?.splice(index,1 );
11521152
}
1153-
delete existingField[item?.uid]
1153+
delete existingField[item?.backupFieldUid]
11541154

11551155
}
11561156
}
11571157
else {
11581158
setIsFieldDeleted(false);
11591159
}
1160-
console.info("row index ---> ", rowIndex)
11611160
setExistingField((prevOptions: ExistingFieldType) => ({
11621161
...prevOptions,
1163-
[rowIndex]: { label: selectedValue?.label, value: selectedValue?.value }
1162+
[backupFieldUid]: { label: selectedValue?.label, value: selectedValue?.value }
11641163
}));
11651164

11661165
//add selected option to array if it is not mapped to any other field
@@ -1177,7 +1176,7 @@ const ContentMapper = forwardRef(({handleStepChange}: contentMapperProps, ref: R
11771176

11781177

11791178
const updatedRows: FieldMapType[] = tableData.map((row) => {
1180-
if (row?.uid === rowIndex && row?.contentstackFieldUid === contentstackFieldUid) {
1179+
if (row?.uid === rowIndex && row?.contentstackFieldUid === backupFieldUid) {
11811180
return {
11821181
...row,
11831182
contentstackField: selectedValue?.label,
@@ -1247,9 +1246,9 @@ const ContentMapper = forwardRef(({handleStepChange}: contentMapperProps, ref: R
12471246
case 'text':
12481247
return (
12491248
(value?.uid !== 'title' &&
1250-
data?.uid !== 'title') &&
1249+
data?.backupFieldUid !== 'title') &&
12511250
(value?.uid !== 'url' &&
1252-
data?.uid !== 'url') &&
1251+
data?.backupFieldUid !== 'url') &&
12531252
!fieldTypes.has(value?.data_type ?? '') &&
12541253
!value?.field_metadata?.multiline &&
12551254
!value?.enum &&
@@ -1311,11 +1310,11 @@ const ContentMapper = forwardRef(({handleStepChange}: contentMapperProps, ref: R
13111310
if (value?.data_type === 'group') {
13121311

13131312
// Check and process the group itself
1314-
if (data?.otherCmsType === 'Group' && checkConditions('Group', value, data)) {
1313+
if (data?.backupFieldType === 'group' && checkConditions('Group', value, data)) {
13151314
OptionsForRow.push(getMatchingOption(value, true, updatedDisplayName, uid ?? ''));
13161315
}
13171316

1318-
const existingLabel = existingField[groupArray?.[0]?.uid]?.label ?? '';
1317+
const existingLabel = existingField[groupArray?.[0]?.backupFieldUid]?.label ?? '';
13191318
const lastLabelSegment = existingLabel.includes('>')
13201319
? existingLabel?.split('>')?.pop()?.trim()
13211320
: existingLabel;
@@ -1326,7 +1325,7 @@ const ContentMapper = forwardRef(({handleStepChange}: contentMapperProps, ref: R
13261325
for (const item of array) {
13271326
const fieldTypeToMatch = Fields[item?.backupFieldType as keyof Mapping]?.type;
13281327
if (item?.id === data?.id) {
1329-
for (const key of existingField[groupArray?.[0]?.uid]?.value?.schema || []) {
1328+
for (const key of existingField[groupArray?.[0]?.backupFieldUid]?.value?.schema || []) {
13301329

13311330
if (checkConditions(fieldTypeToMatch, key, item)) {
13321331
OptionsForRow.push(getMatchingOption(key, true, `${updatedDisplayName} > ${key?.display_name}` || '', `${uid}.${key?.uid}`));
@@ -1425,7 +1424,7 @@ const ContentMapper = forwardRef(({handleStepChange}: contentMapperProps, ref: R
14251424
const fieldTypeToMatch = Fields[data?.backupFieldType as keyof Mapping]?.type;
14261425
//check if UID of souce field is matching to exsting content type field UID
14271426
for (const value of contentTypeSchema) {
1428-
if (data?.uid === value?.uid && data?.contentstackFieldType === value?.data_type) {
1427+
if (data?.uid === value?.uid && data?.backupFieldType === value?.data_type) {
14291428
OptionsForRow.push({ label: value?.display_name, value, isDisabled: false });
14301429
break;
14311430
}
@@ -1460,7 +1459,7 @@ const ContentMapper = forwardRef(({handleStepChange}: contentMapperProps, ref: R
14601459
))
14611460
{
14621461
updatedRows = updatedRows.map((row: FieldMapType) => {
1463-
if (row?.uid === data?.uid) {
1462+
if (row?.uid === data?.uid && row?.backupFieldType === data?.backupFieldType) {
14641463
return {
14651464
...row,
14661465
contentstackField: OptionsForRow?.[0]?.value?.display_name ?? '',
@@ -1478,7 +1477,7 @@ const ContentMapper = forwardRef(({handleStepChange}: contentMapperProps, ref: R
14781477
});
14791478

14801479
// Disable option if it's not already in existingField
1481-
if (!existingField[data?.uid] && OptionsForRow?.[0]) {
1480+
if (!existingField[data?.backupFieldUid] && OptionsForRow?.[0]) {
14821481
OptionsForRow[0].isDisabled = true;
14831482
}
14841483
const newLabel = OptionsForRow?.[0]?.value?.display_name;
@@ -1496,7 +1495,7 @@ const ContentMapper = forwardRef(({handleStepChange}: contentMapperProps, ref: R
14961495
...updatedExstingField,
14971496
[data?.uid]: { label: newLabel, value: newvalue }
14981497
};
1499-
existingField[data?.uid] = { label: newLabel, value: newvalue }
1498+
existingField[data?.backupFieldUid] = { label: newLabel, value: newvalue }
15001499
}
15011500

15021501
const newValue: string = OptionsForRow?.[0]?.value?.display_name;
@@ -1527,7 +1526,7 @@ const ContentMapper = forwardRef(({handleStepChange}: contentMapperProps, ref: R
15271526

15281527

15291528
const OptionValue: FieldTypes =
1530-
OptionsForRow?.length === 1 && (existingField[data?.uid] || updatedExstingField[data?.uid] ) &&
1529+
OptionsForRow?.length === 1 && (existingField[data?.backupFieldUid] || updatedExstingField[data?.backupFieldUid] ) &&
15311530
(OptionsForRow?.[0]?.value?.uid === 'url' || OptionsForRow?.[0]?.value?.uid === 'title' || OptionsForRow?.[0]?.value?.data_type === 'group' || OptionsForRow?.[0]?.value?.data_type === 'reference'
15321531

15331532
)
@@ -1537,7 +1536,7 @@ const ContentMapper = forwardRef(({handleStepChange}: contentMapperProps, ref: R
15371536
isDisabled: true
15381537
}
15391538
: (OptionsForRow?.length === 0 || (OptionsForRow?.length > 0 && OptionsForRow?.every((item)=>item?.isDisabled)
1540-
&& (!existingField[data?.uid]?.label || ! updatedExstingField[data?.uid]?.label ) ))
1539+
&& (!existingField[data?.backupFieldUid]?.label || ! updatedExstingField[data?.backupFieldUid]?.label ) ))
15411540
? {
15421541
label: Fields[data?.contentstackFieldType]?.label ?? 'No Option',
15431542
value: Fields[data?.contentstackFieldType]?.label ?? 'No Option',
@@ -1567,18 +1566,18 @@ const ContentMapper = forwardRef(({handleStepChange}: contentMapperProps, ref: R
15671566
<div className="table-row">
15681567
<div className="select">
15691568
<Select
1570-
value={(OptionsForRow?.length === 0 || existingField?.[data?.uid]?.label === undefined) ? OptionValue : existingField[data?.uid]}
1569+
value={(OptionsForRow?.length === 0 || existingField?.[data?.backupFieldUid]?.label === undefined) ? OptionValue : existingField[data?.backupFieldUid]}
15711570
onChange={(selectedOption: FieldTypes) => {
15721571
if (OptionsForRow?.length === 0) {
1573-
handleValueChange(selectedOption, data?.uid, data?.contentstackFieldUid)
1572+
handleValueChange(selectedOption, data?.uid, data?.backupFieldUid)
15741573
} else {
1575-
handleFieldChange(selectedOption, data?.uid, data?.contentstackFieldUid)
1574+
handleFieldChange(selectedOption, data?.uid, data?.contentstackFieldUid, data?.backupFieldUid)
15761575
}
15771576
}}
15781577
placeholder="Select Field"
15791578
version={'v2'}
15801579
maxWidth="290px"
1581-
isClearable={selectedOptions?.includes?.(existingField?.[data?.uid]?.label ?? '')}
1580+
isClearable={selectedOptions?.includes?.(existingField?.[data?.backupFieldUid]?.label ?? '')}
15821581
options={adjustedOptions}
15831582
isDisabled={OptionValue?.isDisabled || newMigrationData?.project_current_step > 4}
15841583
menuPlacement="auto"
@@ -1600,7 +1599,7 @@ const ContentMapper = forwardRef(({handleStepChange}: contentMapperProps, ref: R
16001599
>
16011600
<Button
16021601
buttonType="light"
1603-
disabled={(contentTypeSchema && existingField[data?.uid]) || newMigrationData?.project_current_step > 4}
1602+
disabled={(contentTypeSchema && existingField[data?.backupFieldUid]) || newMigrationData?.project_current_step > 4}
16041603
>
16051604
<Icon
16061605
version={'v2'}

0 commit comments

Comments
 (0)