Skip to content

Commit 5d419a0

Browse files
committed
tweak(ui): expand question dock toggle area
1 parent 8b16898 commit 5d419a0

2 files changed

Lines changed: 27 additions & 7 deletions

File tree

packages/app/src/pages/session/composer/session-question-dock.tsx

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -233,18 +233,36 @@ export const SessionQuestionDock: Component<{ request: QuestionRequest; onSubmit
233233
setStore("editing", false)
234234
}
235235

236+
const click = (target: EventTarget | null) => {
237+
if (store.sending) return
238+
if (!(target instanceof Node)) {
239+
fold()
240+
return
241+
}
242+
243+
const list = root?.querySelector('[data-slot="question-options"]')
244+
if (list instanceof HTMLElement && list.contains(target)) return
245+
fold()
246+
}
247+
236248
return (
237249
<DockPrompt
238250
kind="question"
239251
ref={(el) => (root = el)}
252+
bodyProps={{
253+
onClick: (event) => click(event.target),
254+
}}
240255
header={
241256
<div
242257
data-action="session-question-toggle"
243258
class="flex flex-1 min-w-0 items-center gap-2 cursor-default select-none"
244259
role="button"
245260
tabIndex={0}
246261
style={{ margin: "0 -10px", padding: "0 0 0 10px" }}
247-
onClick={fold}
262+
onClick={(event) => {
263+
event.stopPropagation()
264+
fold()
265+
}}
248266
onKeyDown={(event) => {
249267
if (event.key !== "Enter" && event.key !== " ") return
250268
event.preventDefault()
@@ -296,13 +314,14 @@ export const SessionQuestionDock: Component<{ request: QuestionRequest; onSubmit
296314
classList={{
297315
"mb-6": store.collapsed && picked() === 0,
298316
}}
299-
role={store.collapsed ? "button" : undefined}
300-
tabIndex={store.collapsed ? 0 : undefined}
301-
onClick={fold}
317+
onClick={(event) => {
318+
event.stopPropagation()
319+
fold()
320+
}}
302321
onKeyDown={(event) => {
303-
if (!store.collapsed) return
304322
if (event.key !== "Enter" && event.key !== " ") return
305323
event.preventDefault()
324+
event.stopPropagation()
306325
fold()
307326
}}
308327
>

packages/ui/src/components/dock-prompt.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { JSX } from "solid-js"
1+
import type { ComponentProps, JSX } from "solid-js"
22
import { DockShell, DockTray } from "./dock-surface"
33

44
export function DockPrompt(props: {
@@ -7,12 +7,13 @@ export function DockPrompt(props: {
77
children: JSX.Element
88
footer: JSX.Element
99
ref?: (el: HTMLDivElement) => void
10+
bodyProps?: Omit<ComponentProps<"div">, "children">
1011
}) {
1112
const slot = (name: string) => `${props.kind}-${name}`
1213

1314
return (
1415
<div data-component="dock-prompt" data-kind={props.kind} ref={props.ref}>
15-
<DockShell data-slot={slot("body")}>
16+
<DockShell {...(props.bodyProps ?? {})} data-slot={slot("body")}>
1617
<div data-slot={slot("header")}>{props.header}</div>
1718
<div data-slot={slot("content")}>{props.children}</div>
1819
</DockShell>

0 commit comments

Comments
 (0)