Skip to content

Commit 29bcbc2

Browse files
added validation for key already exists
1 parent 7fbcdcc commit 29bcbc2

File tree

1 file changed

+44
-7
lines changed
  • src/ui/layouts/stackComponents/ConfigureComponent/CreateComponent

1 file changed

+44
-7
lines changed

src/ui/layouts/stackComponents/ConfigureComponent/CreateComponent/index.tsx

Lines changed: 44 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -323,29 +323,66 @@ export const CreateComponent: React.FC<{ flavor: any }> = ({ flavor }) => {
323323
const { id }: any = workspaces.find(
324324
(item) => item.name === selectedWorkspace,
325325
);
326-
const final: any = {};
326+
const tempFinal: any = {};
327327
inputFields.forEach((ar: any) => {
328328
const keys = Object.keys(ar);
329329
keys.forEach((key) => {
330-
final[key] = {};
330+
tempFinal[key] = {};
331331

332332
ar[key].forEach((nestedArr: any) => {
333333
if (nestedArr.key || nestedArr.value) {
334-
final[key] = {
335-
...final[key],
334+
tempFinal[key] = {
335+
...tempFinal[key],
336336
[nestedArr.key]: nestedArr.value,
337337
};
338338
} else {
339339
if (
340-
final[key] !== undefined &&
341-
Object.keys(final[key]).length === 0
340+
tempFinal[key] !== undefined &&
341+
Object.keys(tempFinal[key]).length === 0
342342
) {
343-
delete final[key];
343+
delete tempFinal[key];
344344
}
345345
}
346346
});
347347
});
348348
});
349+
350+
let final: any = {};
351+
inputFields.forEach((ar: any) => {
352+
const keys = Object.keys(ar);
353+
keys.forEach((key) => {
354+
final[key] = {};
355+
356+
ar[key].forEach((nestedArr: any) => {
357+
if (final[key]?.hasOwnProperty(nestedArr.key)) {
358+
dispatch(
359+
showToasterAction({
360+
description: 'Key already exists.',
361+
type: toasterTypes.failure,
362+
}),
363+
);
364+
return (final = {});
365+
} else {
366+
if (nestedArr.key || nestedArr.value) {
367+
final[key] = {
368+
...final[key],
369+
[nestedArr.key]: nestedArr.value,
370+
};
371+
} else {
372+
if (
373+
final[key] !== undefined &&
374+
Object.keys(final[key]).length === 0
375+
) {
376+
delete final[key];
377+
}
378+
}
379+
}
380+
});
381+
});
382+
});
383+
if (Object.keys(tempFinal).length !== Object.keys(final).length) {
384+
return false;
385+
}
349386
for (const [key] of Object.entries(final)) {
350387
// console.log(`${key}: ${value}`);
351388
for (const [innerKey, innerValue] of Object.entries(final[key])) {

0 commit comments

Comments
 (0)