From d929c60ba2d85e1915d36271b8884159c3680b94 Mon Sep 17 00:00:00 2001 From: tugcekucukoglu Date: Fri, 11 Oct 2024 09:30:55 +0300 Subject: [PATCH] Refactor #6538 --- .../src/cascadeselect/CascadeSelect.vue | 24 +++++++++++++++---- .../cascadeselect/style/CascadeSelectStyle.js | 2 +- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/packages/primevue/src/cascadeselect/CascadeSelect.vue b/packages/primevue/src/cascadeselect/CascadeSelect.vue index 412f30c40..8f1bae087 100644 --- a/packages/primevue/src/cascadeselect/CascadeSelect.vue +++ b/packages/primevue/src/cascadeselect/CascadeSelect.vue @@ -346,14 +346,28 @@ export default { isFocus && focus(this.$refs.focusInput); }, onOptionMouseEnter(event) { - if (this.dirty || (!this.dirty && isNotEmpty(this.modelValue))) { - this.onOptionChange(event); - } else if (!this.dirty && event.processedOption.level === 0) { - this.onOptionClick(event); + if (this.focusOnHover) { + if (isNotEmpty(this.modelValue)) { + const { originalEvent, processedOption } = event; + const { index, level, parentKey } = processedOption; + + this.focusedOptionInfo = { index, level, parentKey }; + this.changeFocusedOptionIndex(originalEvent, index); + } else if (this.dirty || (!this.dirty && isNotEmpty(this.modelValue))) { + this.onOptionChange(event); + } else if (!this.dirty && event.processedOption.level === 0) { + this.onOptionClick(event); + } + } else { + // if (this.dirty || (!this.dirty && isNotEmpty(this.modelValue))) { + // this.onOptionChange(event); + // } else if (!this.dirty && event.processedOption.level === 0) { + // this.onOptionClick(event); + // } } }, onOptionMouseMove(event) { - if (this.focused) { + if (this.focused && this.focusOnHover) { this.changeFocusedOptionIndex(event, event.processedOption.index); } }, diff --git a/packages/primevue/src/cascadeselect/style/CascadeSelectStyle.js b/packages/primevue/src/cascadeselect/style/CascadeSelectStyle.js index 55c25cb7a..47031074d 100644 --- a/packages/primevue/src/cascadeselect/style/CascadeSelectStyle.js +++ b/packages/primevue/src/cascadeselect/style/CascadeSelectStyle.js @@ -165,7 +165,7 @@ const theme = ({ dt }) => ` color: ${dt('cascadeselect.option.selected.color')}; } -.p-cascadeselect-option-selected.p-focus { +.p-cascadeselect-option-selected.p-focus > .p-cascadeselect-option-content { background: ${dt('cascadeselect.option.selected.focus.background')}; color: ${dt('cascadeselect.option.selected.focus.color')}; }