fix: modelselector positioning when calculated direction differs from preferred direction
This commit is contained in:
@@ -20,7 +20,6 @@ const modelSelectorState = reactive({
|
|||||||
});
|
});
|
||||||
const selectedModel = defineModel<ModelWithProvider | null>();
|
const selectedModel = defineModel<ModelWithProvider | null>();
|
||||||
|
|
||||||
const dropdownContentRef = ref<HTMLDivElement | null>(null);
|
|
||||||
const dropdownButton = ref<HTMLButtonElement | null>(null);
|
const dropdownButton = ref<HTMLButtonElement | null>(null);
|
||||||
const searchInputRef = ref<HTMLInputElement | null>(null);
|
const searchInputRef = ref<HTMLInputElement | null>(null);
|
||||||
const dropdownMaxHeight = ref<number | undefined>(undefined);
|
const dropdownMaxHeight = ref<number | undefined>(undefined);
|
||||||
@@ -34,15 +33,7 @@ const toggleDropdown = () => {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const buttonRect = dropdownButton.value?.getBoundingClientRect();
|
console.log(modelSelectorState);
|
||||||
if (!buttonRect) return;
|
|
||||||
modelSelectorState.x = buttonRect.left;
|
|
||||||
if (modelSelectorState.direction === 'up') {
|
|
||||||
const pageHeight = document.body.scrollHeight;
|
|
||||||
modelSelectorState.y = (pageHeight - buttonRect.top) + 6;
|
|
||||||
} else {
|
|
||||||
modelSelectorState.y = buttonRect.bottom - 6;
|
|
||||||
}
|
|
||||||
modelSelectorState.open = true;
|
modelSelectorState.open = true;
|
||||||
|
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
@@ -80,6 +71,14 @@ const calculateDropdownPosition = () => {
|
|||||||
modelSelectorState.direction = 'down';
|
modelSelectorState.direction = 'down';
|
||||||
dropdownMaxHeight.value = Math.min(spaceBelow - 20, 460);
|
dropdownMaxHeight.value = Math.min(spaceBelow - 20, 460);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
modelSelectorState.x = buttonRect.left;
|
||||||
|
if (modelSelectorState.direction === 'up') {
|
||||||
|
const pageHeight = document.body.scrollHeight;
|
||||||
|
modelSelectorState.y = (pageHeight - buttonRect.top) + 6;
|
||||||
|
} else {
|
||||||
|
modelSelectorState.y = buttonRect.bottom + 6;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const searchQuery = ref('');
|
const searchQuery = ref('');
|
||||||
|
|||||||
Reference in New Issue
Block a user