summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--packages/app/src/pages/layout.tsx17
-rw-r--r--packages/ui/src/components/hover-card.css3
2 files changed, 18 insertions, 2 deletions
diff --git a/packages/app/src/pages/layout.tsx b/packages/app/src/pages/layout.tsx
index 4cecec87d..4d1c1f73b 100644
--- a/packages/app/src/pages/layout.tsx
+++ b/packages/app/src/pages/layout.tsx
@@ -138,6 +138,8 @@ export default function Layout(props: ParentProps) {
const isBusy = (directory: string) => busyWorkspaces().has(workspaceKey(directory))
const editorRef = { current: undefined as HTMLInputElement | undefined }
+ const [hoverSession, setHoverSession] = createSignal<string | undefined>()
+
const autoselecting = createMemo(() => {
if (params.dir) return false
if (initialDir) return false
@@ -1540,7 +1542,15 @@ export default function Layout(props: ParentProps) {
</Tooltip>
}
>
- <HoverCard openDelay={1000} closeDelay={0} placement="right-start" gutter={28} trigger={item}>
+ <HoverCard
+ openDelay={1000}
+ closeDelay={0}
+ placement="right"
+ gutter={28}
+ trigger={item}
+ open={hoverSession() === props.session.id}
+ onOpenChange={(open) => setHoverSession(open ? props.session.id : undefined)}
+ >
<Show
when={hoverReady()}
fallback={<div class="text-12-regular text-text-weak">{language.t("session.messages.loading")}</div>}
@@ -1921,7 +1931,10 @@ export default function Layout(props: ParentProps) {
placement="right-start"
gutter={6}
trigger={trigger}
- onOpenChange={setOpen}
+ onOpenChange={(value) => {
+ setOpen(value)
+ if (value) setHoverSession(undefined)
+ }}
>
<div class="-m-3 p-2 flex flex-col w-72">
<div class="px-4 pt-2 pb-1 text-14-medium text-text-strong truncate">{displayName(props.project)}</div>
diff --git a/packages/ui/src/components/hover-card.css b/packages/ui/src/components/hover-card.css
index 70dcdd7a2..43918bf38 100644
--- a/packages/ui/src/components/hover-card.css
+++ b/packages/ui/src/components/hover-card.css
@@ -8,6 +8,7 @@
z-index: 50;
min-width: 200px;
max-width: 320px;
+ max-height: calc(100vh - 1rem);
border-radius: 8px;
background-color: var(--surface-raised-stronger-non-alpha);
pointer-events: auto;
@@ -32,6 +33,8 @@
[data-slot="hover-card-body"] {
padding: 4px;
+ max-height: inherit;
+ overflow-y: auto;
}
}