Skip to content

Commit 6cb92b7

Browse files
committed
keep endpoints visible during scroll
1 parent 14769a3 commit 6cb92b7

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

src/Frontend/src/components/messages2/SequenceDiagram.vue

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,23 +6,24 @@ import Routes from "./SequenceDiagram/RoutesComponent.vue";
66
import { useSequenceDiagramStore } from "@/stores/SequenceDiagramStore";
77
import { storeToRefs } from "pinia";
88
import useTooltips from "./SequenceDiagram/tooltipOverlay.ts";
9-
import { onMounted } from "vue";
9+
import { onMounted, ref } from "vue";
1010
1111
const store = useSequenceDiagramStore();
1212
const { maxWidth, maxHeight } = storeToRefs(store);
13+
const endpointYOffset = ref(0);
1314
1415
useTooltips();
1516
1617
onMounted(() => store.refreshConversation());
1718
</script>
1819

1920
<template>
20-
<div class="outer">
21+
<div class="outer" @scroll="(ev) => (endpointYOffset = (ev.target as Element).scrollTop)">
2122
<svg class="sequence-diagram" :width="`max(100%, ${isNaN(maxWidth) ? 0 : maxWidth}px)`" :height="maxHeight + 20">
22-
<Endpoints />
2323
<Timeline />
2424
<Handlers />
2525
<Routes />
26+
<Endpoints :yOffset="endpointYOffset" />
2627
</svg>
2728
</div>
2829
</template>

src/Frontend/src/components/messages2/SequenceDiagram/EndpointsComponent.vue

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@ interface EndpointSurround {
2525
const Endpoint_Gap = 30;
2626
const Endpoint_Image_Width = 20;
2727
28+
defineProps<{
29+
yOffset: number;
30+
}>();
31+
2832
const store = useSequenceDiagramStore();
2933
const { startX, endpoints } = storeToRefs(store);
3034
@@ -79,7 +83,7 @@ function setEndpointTextRef(el: SVGTextElement, index: number) {
7983
</script>
8084

8185
<template>
82-
<g v-for="(endpoint, i) in endpointItems" :key="endpoint.name" transform="translate(0,15)" :ref="(el) => (endpoint.uiRef = el as SVGElement)">
86+
<g v-for="(endpoint, i) in endpointItems" :key="endpoint.name" :transform="`translate(0,${yOffset + 15})`" :ref="(el) => (endpoint.uiRef = el as SVGElement)">
8387
<rect
8488
v-if="endpoint.surround"
8589
:x="endpoint.surround.x"

0 commit comments

Comments
 (0)