From 13fb3d8c221a93048defef574a4519ad905781c5 Mon Sep 17 00:00:00 2001 From: Andrea Peruffo Date: Mon, 16 Jan 2023 12:04:46 +0000 Subject: [PATCH] review comments --- .../components/modals/generateClientModal.css | 4 - .../components/modals/generateClientModal.tsx | 161 ++++++++++++++---- ui/src/services/groups/groups.service.ts | 2 + ui/webpack.common.js | 2 +- 4 files changed, 131 insertions(+), 38 deletions(-) delete mode 100644 ui/src/app/pages/artifactVersion/components/modals/generateClientModal.css diff --git a/ui/src/app/pages/artifactVersion/components/modals/generateClientModal.css b/ui/src/app/pages/artifactVersion/components/modals/generateClientModal.css deleted file mode 100644 index d762e5f9ec..0000000000 --- a/ui/src/app/pages/artifactVersion/components/modals/generateClientModal.css +++ /dev/null @@ -1,4 +0,0 @@ - -.generate-client { - height: 60%; -} diff --git a/ui/src/app/pages/artifactVersion/components/modals/generateClientModal.tsx b/ui/src/app/pages/artifactVersion/components/modals/generateClientModal.tsx index afc8a330f9..ca26332235 100644 --- a/ui/src/app/pages/artifactVersion/components/modals/generateClientModal.tsx +++ b/ui/src/app/pages/artifactVersion/components/modals/generateClientModal.tsx @@ -15,7 +15,6 @@ * limitations under the License. */ import React from "react"; -import "./generateClientModal.css"; import { PureComponent, PureComponentProps, PureComponentState } from "../../../../components"; import { Button, @@ -28,6 +27,7 @@ import { GridItem, Label, Modal, + Spinner, TextInput } from "@patternfly/react-core"; import { CaretDownIcon } from "@patternfly/react-icons"; @@ -53,6 +53,7 @@ export interface GenerateClientModalState extends PureComponentState { isErrorVisible: boolean; downloadLink: string; isDownloadLinkVisible: boolean; + isGenerating: boolean; } export class GenerateClientModal extends PureComponent { @@ -63,7 +64,11 @@ export class GenerateClientModal extends PureComponentERROR, please check the console logs for details. + } else if (this.state.isGenerating) { + return + } else if (this.state.isDownloadLinkVisible) { return {this.state.isErrorVisible ? "Error" : "Download"} - } else if (this.state.isErrorVisible) { - return } else { return
} @@ -99,7 +102,7 @@ export class GenerateClientModal extends PureComponentthe official documentation to get started. - + - + - -
- - { this.state.data.language ? this.state.data.language : "Java" } - - } - onSelect={this.onLanguageSelect} - isOpen={this.state.languageIsExpanded} - dropdownItems={[ - Java, - CSharp, - Go, - Python, - Ruby, - TypeScript, - PHP, - Swift, - ]} + + Language} + fieldId="form-language" + isRequired={true} + > +
+ + { this.state.data.language ? this.state.data.language : "Java" } + + } + onSelect={this.onLanguageSelect} + isOpen={this.state.languageIsExpanded} + dropdownItems={[ + CSharp, + Go, + Java, + PHP, + Python, + Ruby, + Swift, + TypeScript, + ]} + /> +
+
+
+ + + + -
-
+ +
+ + + + + + @@ -177,17 +220,31 @@ export class GenerateClientModal extends PureComponent => { + this.setMultiState({ + data: { + ...this.state.data, + }, + languageIsExpanded: false, + isValid: false, + isErrorVisible: false, + isDownloadLinkVisible: true, + isGenerating: true, + }); + const global = window as any; if (global.kiota !== undefined && global.kiota.generate !== undefined) { @@ -208,6 +265,7 @@ export class GenerateClientModal extends PureComponent { this.validate(); }); @@ -255,6 +314,7 @@ export class GenerateClientModal extends PureComponent { this.validate(); }); @@ -271,6 +331,41 @@ export class GenerateClientModal extends PureComponent { + this.validate(); + }); + }; + + private onIncludePatternsChange = (value: string): void => { + this.setMultiState({ + data: { + ...this.state.data, + includePatterns: value, + }, + languageIsExpanded: false, + isValid: this.state.isValid, + downloadLink: "", + isErrorVisible: false, + isDownloadLinkVisible: false, + isGenerating: false, + }, () => { + this.validate(); + }); + }; + + private onExcludePatternsChange = (value: string): void => { + this.setMultiState({ + data: { + ...this.state.data, + excludePatterns: value, + }, + languageIsExpanded: false, + isValid: this.state.isValid, + downloadLink: "", + isErrorVisible: false, + isDownloadLinkVisible: false, + isGenerating: false, }, () => { this.validate(); }); diff --git a/ui/src/services/groups/groups.service.ts b/ui/src/services/groups/groups.service.ts index d745bf30c1..e93ce6f7df 100644 --- a/ui/src/services/groups/groups.service.ts +++ b/ui/src/services/groups/groups.service.ts @@ -69,6 +69,8 @@ export interface EditableMetaData { export interface ClientGeneration { clientClassName: string; namespaceName: string; + includePatterns: string, + excludePatterns: string, language: string; content: string; } diff --git a/ui/webpack.common.js b/ui/webpack.common.js index e735626750..15694d24d0 100644 --- a/ui/webpack.common.js +++ b/ui/webpack.common.js @@ -92,7 +92,7 @@ module.exports = (env, argv) => { onBuildStart:{ scripts: [ 'rm -rf client-gen/dist', - 'curl -sL https://github.com/andreaTP/apicurio-client-gen-poc/releases/download/0.0.7/dist.tar.gz | tar -xz -C client-gen' + 'curl -sL https://github.com/andreaTP/apicurio-client-gen-poc/releases/download/0.0.8/dist.tar.gz | tar -xz -C client-gen' ], blocking: true, parallel: false