From 01304e807a9dca1c412b1492e102c65052904fd6 Mon Sep 17 00:00:00 2001 From: Geometrically <18202329+Geometrically@users.noreply.github.com> Date: Tue, 6 Jun 2023 16:07:58 -0700 Subject: [PATCH] Fix dropdown quirks (#63) --- docs/components/dropdown-select.md | 13 ++++++++----- lib/components/base/DropdownButton.vue | 2 +- lib/components/base/DropdownSelect.vue | 12 +++++++----- package.json | 2 +- 4 files changed, 17 insertions(+), 12 deletions(-) diff --git a/docs/components/dropdown-select.md b/docs/components/dropdown-select.md index f7a7eae97..615b044fc 100644 --- a/docs/components/dropdown-select.md +++ b/docs/components/dropdown-select.md @@ -1,8 +1,11 @@ # Dropdown @@ -24,10 +27,10 @@ const value = ref(null) disabled /> diff --git a/lib/components/base/DropdownButton.vue b/lib/components/base/DropdownButton.vue index 04e78fde4..a6238011e 100644 --- a/lib/components/base/DropdownButton.vue +++ b/lib/components/base/DropdownButton.vue @@ -238,7 +238,7 @@ onBeforeUnmount(() => { .options { z-index: 10; - max-height: min(12rem); + max-height: 18.75remq; overflow-y: auto; box-shadow: var(--shadow-inset-sm), 0 0 0 0 transparent; diff --git a/lib/components/base/DropdownSelect.vue b/lib/components/base/DropdownSelect.vue index 01bad8458..a8f41ed2d 100644 --- a/lib/components/base/DropdownSelect.vue +++ b/lib/components/base/DropdownSelect.vue @@ -7,6 +7,7 @@ class="animated-dropdown" @focus="onFocus" @blur="onBlur" + @focusout="onBlur" @mousedown.prevent @keydown.enter.prevent="toggleDropdown" @keydown.up.prevent="focusPreviousOption" @@ -72,15 +73,15 @@ const props = defineProps({ required: true, }, defaultValue: { - type: String, + type: [String, Number, Object], default: null, }, placeholder: { - type: String, + type: [String, Number], default: null, }, modelValue: { - type: String, + type: [String, Number, Object], default: null, }, renderUp: { @@ -147,6 +148,7 @@ const onFocus = () => { } const onBlur = (event) => { + console.log(event) if (!isChildOfDropdown(event.relatedTarget)) { dropdownVisible.value = false } @@ -176,7 +178,7 @@ const focusNextOptionOrOpen = () => { const isChildOfDropdown = (element) => { let currentNode = element while (currentNode) { - if (currentNode === this.$el) { + if (currentNode === dropdown.value) { return true } currentNode = currentNode.parentNode @@ -243,7 +245,7 @@ const isChildOfDropdown = (element) => { .options { z-index: 10; - max-height: min(12rem); + max-height: 18.75rem; overflow-y: auto; box-shadow: var(--shadow-inset-sm), 0 0 0 0 transparent; diff --git a/package.json b/package.json index 895df89b4..129b7fbe8 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "omorphia", "type": "module", - "version": "0.4.23", + "version": "0.4.24", "files": [ "dist", "lib"