From 42aa28d512d4ea77bef6159530b8bac9c7c872a0 Mon Sep 17 00:00:00 2001 From: Adam <2363879+adamdotdevin@users.noreply.github.com> Date: Wed, 18 Feb 2026 13:23:20 -0600 Subject: chore: cleanup (#14181) --- packages/app/src/pages/session/file-tabs.tsx | 30 ++++++++--------- .../app/src/pages/session/session-prompt-dock.tsx | 39 +++++++++++++--------- 2 files changed, 39 insertions(+), 30 deletions(-) (limited to 'packages/app/src/pages/session') diff --git a/packages/app/src/pages/session/file-tabs.tsx b/packages/app/src/pages/session/file-tabs.tsx index 9e3a54311..ebc1f5922 100644 --- a/packages/app/src/pages/session/file-tabs.tsx +++ b/packages/app/src/pages/session/file-tabs.tsx @@ -168,6 +168,13 @@ export function FileTabContent(props: { tab: string }) { draftTop: undefined as number | undefined, }) + const setCommenting = (range: SelectedLineRange | null) => { + setNote("commenting", range) + scheduleComments() + if (!range) return + setNote("draft", "") + } + const getRoot = () => { const el = wrap if (!el) return @@ -260,13 +267,6 @@ export function FileTabContent(props: { tab: string }) { scheduleComments() }) - createEffect(() => { - const range = note.commenting - scheduleComments() - if (!range) return - setNote("draft", "") - }) - createEffect(() => { const focus = comments.focus() const p = path() @@ -278,7 +278,7 @@ export function FileTabContent(props: { tab: string }) { if (!target) return setNote("openedComment", target.id) - setNote("commenting", null) + setCommenting(null) file.setSelectedLines(p, target.selection) requestAnimationFrame(() => comments.clearFocus()) }) @@ -438,16 +438,16 @@ export function FileTabContent(props: { tab: string }) { const p = path() if (!p) return file.setSelectedLines(p, range) - if (!range) setNote("commenting", null) + if (!range) setCommenting(null) }} onLineSelectionEnd={(range: SelectedLineRange | null) => { if (!range) { - setNote("commenting", null) + setCommenting(null) return } setNote("openedComment", null) - setNote("commenting", range) + setCommenting(range) }} overflow="scroll" class="select-text" @@ -468,7 +468,7 @@ export function FileTabContent(props: { tab: string }) { onClick={() => { const p = path() if (!p) return - setNote("commenting", null) + setCommenting(null) setNote("openedComment", (current) => (current === comment.id ? null : comment.id)) file.setSelectedLines(p, comment.selection) }} @@ -483,12 +483,12 @@ export function FileTabContent(props: { tab: string }) { value={note.draft} selection={formatCommentLabel(range())} onInput={(value) => setNote("draft", value)} - onCancel={() => setNote("commenting", null)} + onCancel={() => setCommenting(null)} onSubmit={(value) => { const p = path() if (!p) return addCommentToContext({ file: p, selection: range(), comment: value, origin: "file" }) - setNote("commenting", null) + setCommenting(null) }} onPopoverFocusOut={(e: FocusEvent) => { const current = e.currentTarget as HTMLDivElement @@ -497,7 +497,7 @@ export function FileTabContent(props: { tab: string }) { setTimeout(() => { if (!document.activeElement || !current.contains(document.activeElement)) { - setNote("commenting", null) + setCommenting(null) } }, 0) }} diff --git a/packages/app/src/pages/session/session-prompt-dock.tsx b/packages/app/src/pages/session/session-prompt-dock.tsx index 3f0b7a6e8..abe12bcb0 100644 --- a/packages/app/src/pages/session/session-prompt-dock.tsx +++ b/packages/app/src/pages/session/session-prompt-dock.tsx @@ -70,29 +70,28 @@ export function SessionPromptDock(props: { setSessionHandoff(sessionKey(), { prompt: previewPrompt() }) }) - const [responding, setResponding] = createSignal(false) - - createEffect( - on( - () => permissionRequest()?.id, - () => setResponding(false), - { defer: true }, - ), - ) + const [responding, setResponding] = createSignal() + const permissionResponding = () => { + const perm = permissionRequest() + if (!perm) return false + return responding() === perm.id + } const decide = (response: "once" | "always" | "reject") => { const perm = permissionRequest() if (!perm) return - if (responding()) return + if (responding() === perm.id) return - setResponding(true) + setResponding(perm.id) sdk.client.permission .respond({ sessionID: perm.sessionID, permissionID: perm.id, response }) .catch((err: unknown) => { const message = err instanceof Error ? err.message : String(err) showToast({ title: language.t("common.requestFailed"), description: message }) }) - .finally(() => setResponding(false)) + .finally(() => { + setResponding((id) => (id === perm.id ? undefined : id)) + }) } const done = createMemo( @@ -218,18 +217,28 @@ export function SessionPromptDock(props: { <>
- -
-- cgit v1.2.3