summaryrefslogtreecommitdiffhomepage
path: root/packages/ui/src/components/message-nav.tsx
diff options
context:
space:
mode:
authorAdam <[email protected]>2025-11-24 11:56:00 -0600
committerAdam <[email protected]>2025-11-24 15:10:40 -0600
commitacf1dd85006a0bb4009ef601ae7f7a60eb36af4d (patch)
treec8c7c0ed92e580016b968a64f066ea32bad17e2f /packages/ui/src/components/message-nav.tsx
parent3fb57044d120618c92214b734d1fc831955e39a2 (diff)
downloadopencode-acf1dd85006a0bb4009ef601ae7f7a60eb36af4d.tar.gz
opencode-acf1dd85006a0bb4009ef601ae7f7a60eb36af4d.zip
wip(share): more styling
Diffstat (limited to 'packages/ui/src/components/message-nav.tsx')
-rw-r--r--packages/ui/src/components/message-nav.tsx30
1 files changed, 23 insertions, 7 deletions
diff --git a/packages/ui/src/components/message-nav.tsx b/packages/ui/src/components/message-nav.tsx
index 8475c3206..333ad3743 100644
--- a/packages/ui/src/components/message-nav.tsx
+++ b/packages/ui/src/components/message-nav.tsx
@@ -2,6 +2,8 @@ import { UserMessage } from "@opencode-ai/sdk"
import { ComponentProps, createMemo, For, Match, Show, splitProps, Switch } from "solid-js"
import { DiffChanges } from "./diff-changes"
import { Spinner } from "./spinner"
+import { HoverCard } from "@kobalte/core/hover-card"
+import { Tooltip } from "@kobalte/core/tooltip"
export function MessageNav(
props: ComponentProps<"ul"> & {
@@ -17,7 +19,7 @@ export function MessageNav(
return local.messages?.at(0)
})
- return (
+ const content = (
<ul role="list" data-component="message-nav" data-size={local.size} {...others}>
<For each={local.messages}>
{(message) => {
@@ -28,13 +30,9 @@ export function MessageNav(
<li data-slot="message-nav-item">
<Switch>
<Match when={local.size === "compact"}>
- <button
- data-slot="message-nav-tick-button"
- data-active={message.id === local.current?.id || undefined}
- onClick={handleClick}
- >
+ <div data-slot="message-nav-tick-button" data-active={message.id === local.current?.id || undefined}>
<div data-slot="message-nav-tick-line" />
- </button>
+ </div>
</Match>
<Match when={local.size === "normal"}>
<button data-slot="message-nav-message-button" onClick={handleClick}>
@@ -63,4 +61,22 @@ export function MessageNav(
</For>
</ul>
)
+
+ return (
+ <Switch>
+ <Match when={local.size === "compact"}>
+ <Tooltip openDelay={0} closeDelay={0} placement="top-start" gutter={-65} shift={-16} overlap>
+ <Tooltip.Trigger as="div">{content}</Tooltip.Trigger>
+ <Tooltip.Portal>
+ <Tooltip.Content data-slot="message-nav-tooltip">
+ <div data-slot="message-nav-tooltip-content">
+ <MessageNav {...props} size="normal" />
+ </div>
+ </Tooltip.Content>
+ </Tooltip.Portal>
+ </Tooltip>
+ </Match>
+ <Match when={local.size === "normal"}>{content}</Match>
+ </Switch>
+ )
}