From 2c4d1fb8b44b1a421aef59f5f6bdb446965d6b44 Mon Sep 17 00:00:00 2001 From: Adam <2363879+adamdotdevin@users.noreply.github.com> Date: Sat, 29 Nov 2025 06:18:46 -0600 Subject: chore: cleanup duplicate markup --- .../ui/src/components/session-message-rail.css | 42 ++++++++++++++++ .../ui/src/components/session-message-rail.tsx | 57 ++++++++++++++++++++++ 2 files changed, 99 insertions(+) create mode 100644 packages/ui/src/components/session-message-rail.css create mode 100644 packages/ui/src/components/session-message-rail.tsx (limited to 'packages/ui/src/components') diff --git a/packages/ui/src/components/session-message-rail.css b/packages/ui/src/components/session-message-rail.css new file mode 100644 index 000000000..9d302e10e --- /dev/null +++ b/packages/ui/src/components/session-message-rail.css @@ -0,0 +1,42 @@ +[data-component="session-message-rail"] { + display: contents; +} + +[data-slot="session-message-rail-compact"], +[data-slot="session-message-rail-full"] { + position: absolute; + left: 1.5rem; + margin-top: 0.625rem; +} + +[data-slot="session-message-rail-compact"] { + display: flex; +} + +[data-slot="session-message-rail-full"] { + display: none; +} + +@media (min-width: 72rem) { + [data-slot="session-message-rail-compact"] { + display: none; + } + + [data-slot="session-message-rail-full"] { + display: flex; + } +} + +[data-component="session-message-rail"] [data-slot="session-message-rail-full"] { + transform: none; +} + +[data-component="session-message-rail"][data-wide] [data-slot="session-message-rail-full"] { + margin-top: 0.125rem; + left: calc(((100% - min(100%, 36.5rem)) / 2) - 1.5rem); + transform: translateX(-100%); +} + +[data-component="session-message-rail"]:not([data-wide]) [data-slot="session-message-rail-full"] { + margin-top: 0.625rem; +} diff --git a/packages/ui/src/components/session-message-rail.tsx b/packages/ui/src/components/session-message-rail.tsx new file mode 100644 index 000000000..29d9ac81e --- /dev/null +++ b/packages/ui/src/components/session-message-rail.tsx @@ -0,0 +1,57 @@ +import { UserMessage } from "@opencode-ai/sdk" +import { ComponentProps, Show, splitProps } from "solid-js" +import { MessageNav } from "./message-nav" +import "./session-message-rail.css" + +export interface SessionMessageRailProps extends ComponentProps<"div"> { + messages: UserMessage[] + current?: UserMessage + working?: boolean + wide?: boolean + onMessageSelect: (message: UserMessage) => void +} + +export function SessionMessageRail(props: SessionMessageRailProps) { + const [local, others] = splitProps(props, [ + "messages", + "current", + "working", + "wide", + "onMessageSelect", + "class", + "classList", + ]) + + return ( + 1}> +
+
+ +
+
+ +
+
+
+ ) +} -- cgit v1.2.3