From 3ebb64fcf1085b7338b39d83eff451d374e7bd64 Mon Sep 17 00:00:00 2001 From: Stephen Glass Date: Thu, 22 Aug 2024 22:21:10 -0400 Subject: [PATCH 1/2] fix secret widget required and disabled properties Signed-off-by: Stephen Glass --- .changeset/sharp-fans-tan.md | 7 +++++++ plugins/scaffolder-react/api-report-alpha.md | 5 ++++- .../src/next/components/SecretWidget/SecretWidget.tsx | 9 ++++++++- 3 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 .changeset/sharp-fans-tan.md diff --git a/.changeset/sharp-fans-tan.md b/.changeset/sharp-fans-tan.md new file mode 100644 index 0000000000..2ebb24849f --- /dev/null +++ b/.changeset/sharp-fans-tan.md @@ -0,0 +1,7 @@ +--- +'@backstage/plugin-scaffolder-react': patch +--- + +- Fix scaffolder secret widget field not displaying as required when it's listed as required. +- Fix scaffolder secret widget not able to be required inside nested objects. +- Fix scaffolder secret widget not able to be disabled. diff --git a/plugins/scaffolder-react/api-report-alpha.md b/plugins/scaffolder-react/api-report-alpha.md index 4655cbfd62..545cc02e9e 100644 --- a/plugins/scaffolder-react/api-report-alpha.md +++ b/plugins/scaffolder-react/api-report-alpha.md @@ -152,7 +152,10 @@ export type ScaffolderReactTemplateCategoryPickerClassKey = 'root' | 'label'; // @alpha export const SecretWidget: ( - props: Pick, + props: Pick< + WidgetProps, + 'name' | 'onChange' | 'schema' | 'required' | 'disabled' + >, ) => React_2.JSX.Element; // @alpha diff --git a/plugins/scaffolder-react/src/next/components/SecretWidget/SecretWidget.tsx b/plugins/scaffolder-react/src/next/components/SecretWidget/SecretWidget.tsx index 0b8ca8da3b..46088aba20 100644 --- a/plugins/scaffolder-react/src/next/components/SecretWidget/SecretWidget.tsx +++ b/plugins/scaffolder-react/src/next/components/SecretWidget/SecretWidget.tsx @@ -24,13 +24,18 @@ import React from 'react'; * @alpha */ export const SecretWidget = ( - props: Pick, + props: Pick< + WidgetProps, + 'name' | 'onChange' | 'schema' | 'required' | 'disabled' + >, ) => { const { setSecrets, secrets } = useTemplateSecrets(); const { name, onChange, schema: { title }, + required, + disabled, } = props; return ( @@ -45,6 +50,8 @@ export const SecretWidget = ( value={secrets[name] ?? ''} type="password" autoComplete="off" + required={required} + disabled={disabled} /> ); }; From 4301cbc5a85efb0187a0459eb207a20ab093ba96 Mon Sep 17 00:00:00 2001 From: Stephen Glass Date: Fri, 23 Aug 2024 00:54:41 -0400 Subject: [PATCH 2/2] support minLength and maxLength properties for secret widget Signed-off-by: Stephen Glass --- .changeset/sharp-fans-tan.md | 7 ++++--- .../src/next/components/SecretWidget/SecretWidget.tsx | 6 +++++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/.changeset/sharp-fans-tan.md b/.changeset/sharp-fans-tan.md index 2ebb24849f..add4a85758 100644 --- a/.changeset/sharp-fans-tan.md +++ b/.changeset/sharp-fans-tan.md @@ -2,6 +2,7 @@ '@backstage/plugin-scaffolder-react': patch --- -- Fix scaffolder secret widget field not displaying as required when it's listed as required. -- Fix scaffolder secret widget not able to be required inside nested objects. -- Fix scaffolder secret widget not able to be disabled. +- Fix secret widget field not displaying as required. +- Fix secret widget not able to be required inside nested objects. +- Fix secret widget not able to be disabled. +- Support `minLength` and `maxLength` properties for secret widget. diff --git a/plugins/scaffolder-react/src/next/components/SecretWidget/SecretWidget.tsx b/plugins/scaffolder-react/src/next/components/SecretWidget/SecretWidget.tsx index 46088aba20..6b9094c199 100644 --- a/plugins/scaffolder-react/src/next/components/SecretWidget/SecretWidget.tsx +++ b/plugins/scaffolder-react/src/next/components/SecretWidget/SecretWidget.tsx @@ -33,7 +33,7 @@ export const SecretWidget = ( const { name, onChange, - schema: { title }, + schema: { title, minLength, maxLength }, required, disabled, } = props; @@ -52,6 +52,10 @@ export const SecretWidget = ( autoComplete="off" required={required} disabled={disabled} + inputProps={{ + minLength, + maxLength, + }} /> ); };