diff --git a/frontend/src/components/FloatingTranscriptDebug.vue b/frontend/src/components/FloatingTranscriptDebug.vue index e6fbe18..4f71418 100644 --- a/frontend/src/components/FloatingTranscriptDebug.vue +++ b/frontend/src/components/FloatingTranscriptDebug.vue @@ -162,6 +162,18 @@ function setInputMaxLines(val: number) { localStorage.setItem('transcript-input-max-lines', String(val)) } +// Scroll nav mode: 'scrollbar' | 'buttons' | 'none' +type ScrollNavMode = 'scrollbar' | 'buttons' | 'none' +const savedScrollNav = localStorage.getItem('transcript-scroll-nav') as ScrollNavMode | null +const scrollNavMode = ref( + savedScrollNav && ['scrollbar', 'buttons', 'none'].includes(savedScrollNav) ? savedScrollNav : 'buttons' +) + +function setScrollNavMode(val: ScrollNavMode) { + scrollNavMode.value = val + localStorage.setItem('transcript-scroll-nav', val) +} + // Scroll jump percent const savedScrollJump = localStorage.getItem('transcript-scroll-jump') const scrollJumpPercent = ref(savedScrollJump !== null ? parseInt(savedScrollJump) : 50) @@ -538,7 +550,10 @@ onBeforeUnmount(() => { resizing: isResizing, mobile: effectiveMobile, 'chrome-visible': showChrome, - 'selector-open': showSelector + 'selector-open': showSelector, + 'nav-scrollbar': scrollNavMode === 'scrollbar', + 'nav-buttons': scrollNavMode === 'buttons', + 'nav-none': scrollNavMode === 'none' }" :style="windowStyle" @mouseenter="isHovered = true" @@ -703,6 +718,7 @@ onBeforeUnmount(() => { :overlay-opacity="overlayOpacity" :input-max-lines="inputMaxLines" :scroll-jump-percent="scrollJumpPercent" + :scroll-nav-mode="scrollNavMode" :hook-permission-mode="hookMeta.permissionMode" @send="handleSend" @switch-agent="handleAgentSwitch" @@ -717,6 +733,7 @@ onBeforeUnmount(() => { @update:overlay-opacity="setOverlayOpacity" @update:input-max-lines="setInputMaxLines" @update:scroll-jump-percent="setScrollJumpPercent" + @update:scroll-nav-mode="setScrollNavMode" />
@@ -729,7 +746,7 @@ onBeforeUnmount(() => { -
+
- + +
+ +
+
+
+