From f0003582d048eabf005d915c7d30088865b80e66 Mon Sep 17 00:00:00 2001 From: Girija Soni Date: Wed, 10 Jan 2024 21:38:19 +0530 Subject: [PATCH] Fixes #37012 - Add a placeholder when selecting booltype params --- .../Tabs/Parameters/EditTableRow.js | 22 ++++++++++++++----- .../Tabs/Parameters/ViewTableRow.js | 8 ++++--- 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/webpack/assets/javascripts/react_app/components/HostDetails/Tabs/Parameters/EditTableRow.js b/webpack/assets/javascripts/react_app/components/HostDetails/Tabs/Parameters/EditTableRow.js index f546255c550..d0277045581 100644 --- a/webpack/assets/javascripts/react_app/components/HostDetails/Tabs/Parameters/EditTableRow.js +++ b/webpack/assets/javascripts/react_app/components/HostDetails/Tabs/Parameters/EditTableRow.js @@ -79,6 +79,20 @@ export const EditParametersTableRow = ({ ); } }; + + const onSelect = (event, selection, isPlaceholder) => { + if (isPlaceholder) clearSelection(); + else { + setValue(selection); + setSelectValueIsOpen(false); + } + }; + + const clearSelection = () => { + setValue(''); + setSelectValueIsOpen(false); + }; + return ( @@ -124,13 +138,11 @@ export const EditParametersTableRow = ({ variant={SelectVariant.single} aria-label={`Select ${param.name} value`} onToggle={setSelectValueIsOpen} - selections={value.toString()} + selections={value?.toString()} isOpen={selectValueIsOpen} - onSelect={(event, selection) => { - setSelectValueIsOpen(false); - setValue(selection === 'true'); - }} + onSelect={onSelect} > + diff --git a/webpack/assets/javascripts/react_app/components/HostDetails/Tabs/Parameters/ViewTableRow.js b/webpack/assets/javascripts/react_app/components/HostDetails/Tabs/Parameters/ViewTableRow.js index 840be819691..aa7d2085c62 100644 --- a/webpack/assets/javascripts/react_app/components/HostDetails/Tabs/Parameters/ViewTableRow.js +++ b/webpack/assets/javascripts/react_app/components/HostDetails/Tabs/Parameters/ViewTableRow.js @@ -11,11 +11,13 @@ const getValue = param => { if (param['hidden_value?']) { return '••••••••'; } + if (param.value === null) + return {__('No value')}; + if (param.parameter_type === 'boolean') { - return param.value.toString(); + return param?.value?.toString(); } - if (!param.value) - return {__('No value')}; + if (['json', 'yaml', 'array', 'hash'].includes(param.parameter_type)) { return JSON.stringify(param.value); }