From 019414182fdfdfa44da9a1ba106f18acf9943257 Mon Sep 17 00:00:00 2001 From: Sebastian Malton Date: Tue, 26 Jul 2022 09:14:29 -0400 Subject: [PATCH] Fix AddRoleDialog's create button being enabled before entering data Signed-off-by: Sebastian Malton --- src/common/k8s-api/kube-object.store.ts | 10 +- .../add-new-role-dialog.test.tsx.snap | 5696 +++++++++++++++++ .../roles/add-new-role-dialog.test.tsx | 187 + .../+namespaces/namespace-select.tsx | 18 +- .../namespaces-sidebar-items.injectable.tsx | 2 +- .../+namespaces/namespaces.injectable.ts | 18 + .../+user-management/+roles/add-dialog.tsx | 100 - .../+roles/add-dialog/open.injectable.ts | 25 + .../+roles/add-dialog/state.injectable.ts | 18 + .../{add-dialog.scss => add-dialog/view.scss} | 0 .../+roles/add-dialog/view.tsx | 111 + .../+user-management/+roles/index.ts | 7 - .../+roles/navigate-to.injectable.ts | 19 + .../+user-management/+roles/view.tsx | 107 +- .../add-remove-buttons/add-remove-buttons.tsx | 81 +- .../role-detail-item.injectable.ts | 2 +- src/renderer/components/wizard/wizard.tsx | 4 +- 17 files changed, 6186 insertions(+), 219 deletions(-) create mode 100644 src/features/cluster/kube-object-views/roles/__snapshots__/add-new-role-dialog.test.tsx.snap create mode 100644 src/features/cluster/kube-object-views/roles/add-new-role-dialog.test.tsx create mode 100644 src/renderer/components/+namespaces/namespaces.injectable.ts delete mode 100644 src/renderer/components/+user-management/+roles/add-dialog.tsx create mode 100644 src/renderer/components/+user-management/+roles/add-dialog/open.injectable.ts create mode 100644 src/renderer/components/+user-management/+roles/add-dialog/state.injectable.ts rename src/renderer/components/+user-management/+roles/{add-dialog.scss => add-dialog/view.scss} (100%) create mode 100644 src/renderer/components/+user-management/+roles/add-dialog/view.tsx delete mode 100644 src/renderer/components/+user-management/+roles/index.ts create mode 100644 src/renderer/components/+user-management/+roles/navigate-to.injectable.ts diff --git a/src/common/k8s-api/kube-object.store.ts b/src/common/k8s-api/kube-object.store.ts index 309c183e42..13eb3e5fd7 100644 --- a/src/common/k8s-api/kube-object.store.ts +++ b/src/common/k8s-api/kube-object.store.ts @@ -12,7 +12,7 @@ import type { KubeJsonApiDataFor, KubeObject } from "./kube-object"; import { KubeStatus } from "./kube-object"; import type { IKubeWatchEvent } from "./kube-watch-event"; import { ItemStore } from "../item.store"; -import type { KubeApiQueryParams, KubeApi, KubeApiWatchCallback } from "./kube-api"; +import type { KubeApiQueryParams, KubeApi, KubeApiWatchCallback, ResourceDescriptor } from "./kube-api"; import { parseKubeApi } from "./kube-api-parse"; import type { RequestInit } from "node-fetch"; import type { Patch } from "rfc6902"; @@ -327,12 +327,12 @@ export abstract class KubeObjectStore< if (error) this.reset(); } - protected async loadItem(params: { name: string; namespace?: string }): Promise { + protected async loadItem(params: ResourceDescriptor): Promise { return this.api.get(params); } @action - async load(params: { name: string; namespace?: string }): Promise { + async load(params: ResourceDescriptor): Promise { const { name, namespace } = params; let item: K | null | undefined = this.getByName(name, namespace); @@ -356,11 +356,11 @@ export abstract class KubeObjectStore< return this.load({ name, namespace }); } - protected async createItem(params: { name: string; namespace?: string }, data?: PartialDeep): Promise { + protected async createItem(params: ResourceDescriptor, data?: PartialDeep): Promise { return this.api.create(params, data); } - async create(params: { name: string; namespace?: string }, data?: PartialDeep): Promise { + async create(params: ResourceDescriptor, data?: PartialDeep): Promise { const newItem = await this.createItem(params, data); assert(newItem, "Failed to create item from kube"); diff --git a/src/features/cluster/kube-object-views/roles/__snapshots__/add-new-role-dialog.test.tsx.snap b/src/features/cluster/kube-object-views/roles/__snapshots__/add-new-role-dialog.test.tsx.snap new file mode 100644 index 0000000000..fadf2f3460 --- /dev/null +++ b/src/features/cluster/kube-object-views/roles/__snapshots__/add-new-role-dialog.test.tsx.snap @@ -0,0 +1,5696 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Roles view/add new role dialog renders 1`] = ` + +
+
+
+