From 3ebb64fcf1085b7338b39d83eff451d374e7bd64 Mon Sep 17 00:00:00 2001 From: Stephen Glass Date: Thu, 22 Aug 2024 22:21:10 -0400 Subject: [PATCH] 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} /> ); };