From 146c0d67332644bf5f304c6e4b07fba2b0519d6b Mon Sep 17 00:00:00 2001 From: Pierrick Rambaud Date: Sun, 9 Mar 2025 16:56:16 +0000 Subject: [PATCH 1/5] 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/5] 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/5] 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/5] 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); From 649d0b15e84bc6ac6246cdb86226f9bd067b5814 Mon Sep 17 00:00:00 2001 From: philippe Date: Wed, 4 Jun 2025 09:42:07 -0400 Subject: [PATCH 5/5] Update changelog --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0c6e32c87b..25075e8d36 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,10 +10,19 @@ This project adheres to [Semantic Versioning](https://semver.org/). - [#3298](https://github.com/plotly/dash/pull/3298) Fix dev_only resources filtering. - [#3315](https://github.com/plotly/dash/pull/3315) Fix pages module is package check. - [#3319](https://github.com/plotly/dash/pull/3319) Fix issue where `ExternalWrapper` would remove props from the parent component, now there is a `temp` that is passed to check if it should be removed on unmount. +- [#3108](https://github.com/plotly/dash/pull/3108) Fix layout as list for pages. +- [#1906](https://github.com/plotly/dash/pull/1906) Make graph height more responsive. +- [#2927](https://github.com/plotly/dash/pull/2927) Fix unexpected behaviour of the cursor in dcc.Input ## Added - [#3294](https://github.com/plotly/dash/pull/3294) Added the ability to pass `allow_optional` to Input and State to allow callbacks to work even if these components are not in the dash layout. - [#3077](https://github.com/plotly/dash/pull/3077) Add new parameter `assets_path_ignore` to `dash.Dash()`. Closes [#3076](https://github.com/plotly/dash/issues/3076) +- [#3202](https://github.com/plotly/dash/pull/3202) expose the closeMenuOnSelect option in dropdown component + +## Changed + +- [#3303](https://github.com/plotly/dash/pull/3303) Improve flatten_grouping performance (callback with dictionary output/input) +- [#3304](https://github.com/plotly/dash/pull/3304) Speed up function _operation by 80% ## [3.0.4] - 2025-04-24