Skip to content

Commit 9e7de63

Browse files
authored
fix: fixes dropdown placement. (#4217)
1 parent 313cde3 commit 9e7de63

File tree

2 files changed

+12
-19
lines changed

2 files changed

+12
-19
lines changed

assets/components/LogViewer/LogActions.vue

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
<template>
2-
<div :class="dropdownClass" v-show="container" ref="dropdownRef" @mouseenter="checkDropdownPosition">
2+
<div
3+
class="dropdown dropdown-hover absolute -left-2 z-10 font-sans"
4+
:class="shouldShowBelow ? 'dropdown-right' : 'dropdown-right dropdown-end'"
5+
v-show="container"
6+
ref="dropdownRef"
7+
@mouseenter="checkDropdownPosition"
8+
>
39
<router-link
410
v-if="isSearching"
511
@click="resetSearch()"
@@ -65,7 +71,6 @@ import stripAnsi from "strip-ansi";
6571
import { Container } from "@/models/Container";
6672
import { LogEntry, SimpleLogEntry, ComplexLogEntry, JSONObject } from "@/models/LogEntry";
6773
import LogDetails from "./LogDetails.vue";
68-
import { ref, computed } from "vue";
6974
7075
const { logEntry, container } = defineProps<{
7176
logEntry: LogEntry<string | JSONObject>;
@@ -132,25 +137,13 @@ function hideMenu(e: MouseEvent) {
132137
}
133138
}
134139
135-
const DROPDOWN_BOTTOM_THRESHOLD = 100;
136-
137140
const dropdownRef = useTemplateRef<HTMLDivElement>("dropdownRef");
138-
const shouldShowAbove = ref(false);
141+
const shouldShowBelow = ref(false);
139142
140143
function checkDropdownPosition() {
141144
if (!dropdownRef.value) return;
142145
143146
const rect = dropdownRef.value.getBoundingClientRect();
144-
shouldShowAbove.value = rect.bottom + DROPDOWN_BOTTOM_THRESHOLD > window.innerHeight;
147+
shouldShowBelow.value = rect.top < 150;
145148
}
146-
147-
const dropdownClass = computed(() => [
148-
"dropdown",
149-
"dropdown-hover",
150-
"absolute",
151-
"-left-2",
152-
"z-10",
153-
"font-sans",
154-
shouldShowAbove.value ? "dropdown-top" : "dropdown-right",
155-
]);
156149
</script>

assets/components/LogViewer/__snapshots__/EventSource.spec.ts.snap

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ exports[`<ContainerEventSource /> > render html correctly > should render dates
77
</li>
88
<li data-v-cf9ff940="" id="1" data-time="1560336942459" class="group/entry">
99
<div data-v-cf9ff940="" class="relative flex w-full items-start gap-x-2 group-[.compact]:items-stretch">
10-
<div class="dropdown dropdown-hover absolute -left-2 z-10 font-sans dropdown-right"><button tabindex="0" class="btn btn-square btn-xs border-base-content/20 bg-base-100 border opacity-0 shadow-sm group-hover/entry:opacity-90"><svg viewBox="0 0 512 512" width="1.2em" height="1.2em">
10+
<div class="dropdown dropdown-hover absolute -left-2 z-10 font-sans dropdown-right dropdown-end"><button tabindex="0" class="btn btn-square btn-xs border-base-content/20 bg-base-100 border opacity-0 shadow-sm group-hover/entry:opacity-90"><svg viewBox="0 0 512 512" width="1.2em" height="1.2em">
1111
<circle cx="256" cy="256" r="48" fill="currentColor"></circle>
1212
<circle cx="256" cy="416" r="48" fill="currentColor"></circle>
1313
<circle cx="256" cy="96" r="48" fill="currentColor"></circle>
@@ -41,7 +41,7 @@ exports[`<ContainerEventSource /> > render html correctly > should render dates
4141
</li>
4242
<li data-v-cf9ff940="" id="1" data-time="1560336942459" class="group/entry">
4343
<div data-v-cf9ff940="" class="relative flex w-full items-start gap-x-2 group-[.compact]:items-stretch">
44-
<div class="dropdown dropdown-hover absolute -left-2 z-10 font-sans dropdown-right"><button tabindex="0" class="btn btn-square btn-xs border-base-content/20 bg-base-100 border opacity-0 shadow-sm group-hover/entry:opacity-90"><svg viewBox="0 0 512 512" width="1.2em" height="1.2em">
44+
<div class="dropdown dropdown-hover absolute -left-2 z-10 font-sans dropdown-right dropdown-end"><button tabindex="0" class="btn btn-square btn-xs border-base-content/20 bg-base-100 border opacity-0 shadow-sm group-hover/entry:opacity-90"><svg viewBox="0 0 512 512" width="1.2em" height="1.2em">
4545
<circle cx="256" cy="256" r="48" fill="currentColor"></circle>
4646
<circle cx="256" cy="416" r="48" fill="currentColor"></circle>
4747
<circle cx="256" cy="96" r="48" fill="currentColor"></circle>
@@ -75,7 +75,7 @@ exports[`<ContainerEventSource /> > render html correctly > should render messag
7575
</li>
7676
<li data-v-cf9ff940="" id="1" data-time="1560336942459" class="group/entry">
7777
<div data-v-cf9ff940="" class="relative flex w-full items-start gap-x-2 group-[.compact]:items-stretch">
78-
<div class="dropdown dropdown-hover absolute -left-2 z-10 font-sans dropdown-right"><button tabindex="0" class="btn btn-square btn-xs border-base-content/20 bg-base-100 border opacity-0 shadow-sm group-hover/entry:opacity-90"><svg viewBox="0 0 512 512" width="1.2em" height="1.2em">
78+
<div class="dropdown dropdown-hover absolute -left-2 z-10 font-sans dropdown-right dropdown-end"><button tabindex="0" class="btn btn-square btn-xs border-base-content/20 bg-base-100 border opacity-0 shadow-sm group-hover/entry:opacity-90"><svg viewBox="0 0 512 512" width="1.2em" height="1.2em">
7979
<circle cx="256" cy="256" r="48" fill="currentColor"></circle>
8080
<circle cx="256" cy="416" r="48" fill="currentColor"></circle>
8181
<circle cx="256" cy="96" r="48" fill="currentColor"></circle>

0 commit comments

Comments
 (0)