Skip to content

Commit c99e6c7

Browse files
committed
Update CreateManagedControlPlaneWizardContainer.tsx
1 parent 3683515 commit c99e6c7

File tree

1 file changed

+38
-41
lines changed

1 file changed

+38
-41
lines changed

src/components/Wizards/CreateManagedControlPlane/CreateManagedControlPlaneWizardContainer.tsx

Lines changed: 38 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -435,52 +435,49 @@ export const CreateManagedControlPlaneWizardContainer: FC<CreateManagedControlPl
435435
appliedTemplateComponentsRef.current = false;
436436
}, [selectedTemplateValue, isOpen]);
437437

438-
useEffect(
439-
() => {
440-
if (selectedStep !== 'members') return;
441-
if (!selectedTemplate) return;
442-
if (appliedTemplateMembersRef.current) return;
443-
444-
const templateMembers = (selectedTemplate?.spec?.spec?.authorization?.defaultMembers ??
445-
[]) as ManagedControlPlaneTemplate['spec']['spec']['authorization']['defaultMembers'];
446-
if (!templateMembers?.length) {
447-
appliedTemplateMembersRef.current = true;
448-
return;
449-
}
438+
useEffect(() => {
439+
if (selectedStep !== 'members') return;
440+
if (!selectedTemplate) return;
441+
if (appliedTemplateMembersRef.current) return;
450442

451-
const currentMembers = (watch('members') ?? []) as Member[];
443+
const templateMembers = (selectedTemplate?.spec?.spec?.authorization?.defaultMembers ??
444+
[]) as ManagedControlPlaneTemplate['spec']['spec']['authorization']['defaultMembers'];
445+
if (!templateMembers?.length) {
446+
appliedTemplateMembersRef.current = true;
447+
return;
448+
}
452449

453-
let merged = currentMembers;
454-
if (user?.email && !currentMembers.some((m) => m.name === user.email)) {
455-
merged = [{ name: user.email, roles: [MemberRoles.admin], kind: 'User' }, ...currentMembers];
456-
}
450+
const currentMembers = (watch('members') ?? []) as Member[];
457451

458-
const mappedFromTemplate: Member[] = templateMembers
459-
.map((m) => ({
460-
name: stripIdpPrefix(String(m?.name ?? ''), idpPrefix),
461-
roles: [normalizeMemberRole(m?.role)],
462-
kind: normalizeMemberKind(m?.kind),
463-
}))
464-
.filter((m) => !!m.name);
465-
466-
const byName = new Map<string, Member>();
467-
merged.forEach((m) => m?.name && byName.set(m.name, m));
468-
mappedFromTemplate.forEach((m) => {
469-
if (m.name && !byName.has(m.name)) byName.set(m.name, m);
470-
});
452+
let merged = currentMembers;
453+
if (user?.email && !currentMembers.some((m) => m.name === user.email)) {
454+
merged = [{ name: user.email, roles: [MemberRoles.admin], kind: 'User' }, ...currentMembers];
455+
}
471456

472-
const normalizedMembers = Array.from(byName.values()).map((m) => ({
473-
...m,
474-
roles: (m.roles ?? []).length
475-
? m.roles.map((r) => normalizeMemberRole(r as unknown as string))
476-
: [MemberRoles.view],
477-
}));
457+
const mappedFromTemplate: Member[] = templateMembers
458+
.map((m) => ({
459+
name: stripIdpPrefix(String(m?.name ?? ''), idpPrefix),
460+
roles: [normalizeMemberRole(m?.role)],
461+
kind: normalizeMemberKind(m?.kind),
462+
}))
463+
.filter((m) => !!m.name);
464+
465+
const byName = new Map<string, Member>();
466+
merged.forEach((m) => m?.name && byName.set(m.name, m));
467+
mappedFromTemplate.forEach((m) => {
468+
if (m.name && !byName.has(m.name)) byName.set(m.name, m);
469+
});
478470

479-
setValue('members', normalizedMembers, { shouldValidate: true });
480-
appliedTemplateMembersRef.current = true;
481-
},
482-
[selectedStep, selectedTemplate, watch, setValue, user?.email, normalizeMemberRole, normalizeMemberKind],
483-
);
471+
const normalizedMembers = Array.from(byName.values()).map((m) => ({
472+
...m,
473+
roles: (m.roles ?? []).length
474+
? m.roles.map((r) => normalizeMemberRole(r as unknown as string))
475+
: [MemberRoles.view],
476+
}));
477+
478+
setValue('members', normalizedMembers, { shouldValidate: true });
479+
appliedTemplateMembersRef.current = true;
480+
}, [selectedStep, selectedTemplate, watch, setValue, user?.email, normalizeMemberRole, normalizeMemberKind]);
484481
const {
485482
isLoading: componentsLoading,
486483
error: componentsError,

0 commit comments

Comments
 (0)