fix(components): add generic constraints and null checks in AutocompleteDropdown
- Add 'extends string' constraint to generic type T - Add null check for model.value with nullish coalescing - Add null check for scroller before accessing properties - Add instanceof check for HTMLElement before accessing offsetTop
This commit is contained in:
parent
a575159424
commit
81f85a3849
|
|
@ -1,4 +1,4 @@
|
||||||
<script setup lang="ts" generic="T">
|
<script setup lang="ts" generic="T extends string">
|
||||||
import {type ComponentPublicInstance, nextTick, ref, watch} from 'vue'
|
import {type ComponentPublicInstance, nextTick, ref, watch} from 'vue'
|
||||||
|
|
||||||
const props = withDefaults(defineProps<{
|
const props = withDefaults(defineProps<{
|
||||||
|
|
@ -30,15 +30,21 @@ const editorRef = ref<HTMLTextAreaElement | null>(null)
|
||||||
watch(
|
watch(
|
||||||
() => model.value,
|
() => model.value,
|
||||||
newValue => {
|
newValue => {
|
||||||
val.value = newValue
|
val.value = newValue ?? ''
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
function updateSuggestionScroll() {
|
function updateSuggestionScroll() {
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
const scroller = suggestionScrollerRef.value
|
const scroller = suggestionScrollerRef.value
|
||||||
const selectedItem = scroller?.querySelector('.selected')
|
if (!scroller) return
|
||||||
scroller.scrollTop = selectedItem ? selectedItem.offsetTop : 0
|
|
||||||
|
const selectedItem = scroller.querySelector('.selected')
|
||||||
|
if (selectedItem && selectedItem instanceof HTMLElement) {
|
||||||
|
scroller.scrollTop = selectedItem.offsetTop
|
||||||
|
} else {
|
||||||
|
scroller.scrollTop = 0
|
||||||
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue