From 146c0d67332644bf5f304c6e4b07fba2b0519d6b Mon Sep 17 00:00:00 2001 From: Pierrick Rambaud Date: Sun, 9 Mar 2025 16:56:16 +0000 Subject: [PATCH 1/4] feat: expose the closeMenuOnSelect option in dropdown component --- .../dash-core-components/src/components/Dropdown.react.js | 6 ++++++ .../dash-core-components/src/fragments/Dropdown.react.js | 3 +++ 2 files changed, 9 insertions(+) diff --git a/components/dash-core-components/src/components/Dropdown.react.js b/components/dash-core-components/src/components/Dropdown.react.js index 37111fc338..96d8d33304 100644 --- a/components/dash-core-components/src/components/Dropdown.react.js +++ b/components/dash-core-components/src/components/Dropdown.react.js @@ -145,6 +145,11 @@ Dropdown.propTypes = { */ disabled: PropTypes.bool, + /** + * If false, the menu of the dropdown will not close once a value is selected. + */ + closeMenuOnSelect: PropTypes.bool, + /** * height of each option. Can be increased when label lengths would wrap around */ @@ -232,6 +237,7 @@ Dropdown.defaultProps = { searchable: true, optionHeight: 35, maxHeight: 200, + closeMenuOnSelect: true, persisted_props: ['value'], persistence_type: 'local', }; diff --git a/components/dash-core-components/src/fragments/Dropdown.react.js b/components/dash-core-components/src/fragments/Dropdown.react.js index c6d0b0e806..e82bea899b 100644 --- a/components/dash-core-components/src/fragments/Dropdown.react.js +++ b/components/dash-core-components/src/fragments/Dropdown.react.js @@ -33,6 +33,7 @@ const RDProps = [ 'maxHeight', 'style', 'className', + 'closeMenuOnSelect' ]; const Dropdown = props => { @@ -46,6 +47,7 @@ const Dropdown = props => { style, loading_state, value, + closeMenuOnSelect, } = props; const [optionsCheck, setOptionsCheck] = useState(null); const persistentOptions = useRef(null); @@ -158,6 +160,7 @@ const Dropdown = props => { value={value} onChange={onChange} onInputChange={onInputChange} + closeMenuOnSelect={closeMenuOnSelect} backspaceRemoves={clearable} deleteRemoves={clearable} inputProps={{autoComplete: 'off'}} From 2a5ff9721a631c3a8750f423651dcb55a34acfbc Mon Sep 17 00:00:00 2001 From: Rambaud Pierrick <12rambau@users.noreply.github.com> Date: Mon, 10 Mar 2025 12:59:51 +0100 Subject: [PATCH 2/4] Update components/dash-core-components/src/fragments/Dropdown.react.js --- components/dash-core-components/src/fragments/Dropdown.react.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/dash-core-components/src/fragments/Dropdown.react.js b/components/dash-core-components/src/fragments/Dropdown.react.js index e82bea899b..5886a7e146 100644 --- a/components/dash-core-components/src/fragments/Dropdown.react.js +++ b/components/dash-core-components/src/fragments/Dropdown.react.js @@ -33,7 +33,7 @@ const RDProps = [ 'maxHeight', 'style', 'className', - 'closeMenuOnSelect' + 'closeMenuOnSelect', ]; const Dropdown = props => { From a4caaf1a212f752fee3a41d51d0cca0d97ef3f74 Mon Sep 17 00:00:00 2001 From: Pierrick Rambaud Date: Mon, 10 Mar 2025 18:03:42 +0000 Subject: [PATCH 3/4] refactor: fix linting issues --- components/dash-core-components/src/fragments/Dropdown.react.js | 1 - 1 file changed, 1 deletion(-) diff --git a/components/dash-core-components/src/fragments/Dropdown.react.js b/components/dash-core-components/src/fragments/Dropdown.react.js index e82bea899b..e9ed7942b8 100644 --- a/components/dash-core-components/src/fragments/Dropdown.react.js +++ b/components/dash-core-components/src/fragments/Dropdown.react.js @@ -160,7 +160,6 @@ const Dropdown = props => { value={value} onChange={onChange} onInputChange={onInputChange} - closeMenuOnSelect={closeMenuOnSelect} backspaceRemoves={clearable} deleteRemoves={clearable} inputProps={{autoComplete: 'off'}} From b08724f0fcf2891ad9bde82cf56e9940bf538fde Mon Sep 17 00:00:00 2001 From: Rambaud Pierrick <12rambau@users.noreply.github.com> Date: Mon, 10 Mar 2025 22:57:00 +0100 Subject: [PATCH 4/4] props is directly pass from constProps --- components/dash-core-components/src/fragments/Dropdown.react.js | 1 - 1 file changed, 1 deletion(-) diff --git a/components/dash-core-components/src/fragments/Dropdown.react.js b/components/dash-core-components/src/fragments/Dropdown.react.js index 1c9d2e7fba..cbbcee915b 100644 --- a/components/dash-core-components/src/fragments/Dropdown.react.js +++ b/components/dash-core-components/src/fragments/Dropdown.react.js @@ -47,7 +47,6 @@ const Dropdown = props => { style, loading_state, value, - closeMenuOnSelect, } = props; const [optionsCheck, setOptionsCheck] = useState(null); const persistentOptions = useRef(null);