Skip to content

Commit 682203f

Browse files
Merge branch 'anomalyco:dev' into feat/hot-reload-smooth
2 parents bc09169 + e9b9a62 commit 682203f

8 files changed

Lines changed: 29 additions & 32 deletions

File tree

packages/app/src/components/dialog-select-file.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -347,9 +347,9 @@ export function DialogSelectFile(props: { mode?: DialogSelectFileMode; onOpenFil
347347
tabs().open(value)
348348
file.load(path)
349349
if (!view().reviewPanel.opened()) view().reviewPanel.open()
350-
layout.fileTree.open()
351350
layout.fileTree.setTab("all")
352351
props.onOpenFile?.(path)
352+
tabs().setActive(value)
353353
}
354354

355355
const handleSelect = (item: Entry | undefined) => {

packages/app/src/components/prompt-input.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -158,14 +158,13 @@ export const PromptInput: Component<PromptInputProps> = (props) => {
158158
const wantsReview = item.commentOrigin === "review" || (item.commentOrigin !== "file" && commentInReview(item.path))
159159
if (wantsReview) {
160160
if (!view().reviewPanel.opened()) view().reviewPanel.open()
161-
layout.fileTree.open()
162161
layout.fileTree.setTab("changes")
162+
tabs().setActive("review")
163163
requestAnimationFrame(() => comments.setFocus(focus))
164164
return
165165
}
166166

167167
if (!view().reviewPanel.opened()) view().reviewPanel.open()
168-
layout.fileTree.open()
169168
layout.fileTree.setTab("all")
170169
const tab = files.tab(item.path)
171170
tabs().open(tab)

packages/app/src/components/prompt-input/slash-popover.tsx

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -53,18 +53,15 @@ export const PromptPopover: Component<PromptPopoverProps> = (props) => {
5353
>
5454
<For each={props.atFlat.slice(0, 10)}>
5555
{(item) => {
56-
const active = props.atActive === props.atKey(item)
57-
const shared = {
58-
"w-full flex items-center gap-x-2 rounded-md px-2 py-0.5": true,
59-
"bg-surface-raised-base-hover": active,
60-
}
56+
const key = props.atKey(item)
6157

6258
if (item.type === "agent") {
6359
return (
6460
<button
65-
classList={shared}
61+
class="w-full flex items-center gap-x-2 rounded-md px-2 py-0.5"
62+
classList={{ "bg-surface-raised-base-hover": props.atActive === key }}
6663
onClick={() => props.onAtSelect(item)}
67-
onMouseEnter={() => props.setAtActive(props.atKey(item))}
64+
onMouseEnter={() => props.setAtActive(key)}
6865
>
6966
<Icon name="brain" size="small" class="text-icon-info-active shrink-0" />
7067
<span class="text-14-regular text-text-strong whitespace-nowrap">@{item.name}</span>
@@ -78,9 +75,10 @@ export const PromptPopover: Component<PromptPopoverProps> = (props) => {
7875

7976
return (
8077
<button
81-
classList={shared}
78+
class="w-full flex items-center gap-x-2 rounded-md px-2 py-0.5"
79+
classList={{ "bg-surface-raised-base-hover": props.atActive === key }}
8280
onClick={() => props.onAtSelect(item)}
83-
onMouseEnter={() => props.setAtActive(props.atKey(item))}
81+
onMouseEnter={() => props.setAtActive(key)}
8482
>
8583
<FileIcon node={{ path: item.path, type: "file" }} class="shrink-0 size-4" />
8684
<div class="flex items-center text-14-regular min-w-0">

packages/app/src/components/session-context-usage.tsx

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,9 @@ interface SessionContextUsageProps {
1515

1616
function openSessionContext(args: {
1717
view: ReturnType<ReturnType<typeof useLayout>["view"]>
18-
layout: ReturnType<typeof useLayout>
1918
tabs: ReturnType<ReturnType<typeof useLayout>["tabs"]>
2019
}) {
2120
if (!args.view.reviewPanel.opened()) args.view.reviewPanel.open()
22-
args.layout.fileTree.open()
23-
args.layout.fileTree.setTab("all")
2421
args.tabs.open("context")
2522
args.tabs.setActive("context")
2623
}
@@ -55,7 +52,6 @@ export function SessionContextUsage(props: SessionContextUsageProps) {
5552
if (!params.id) return
5653
openSessionContext({
5754
view: view(),
58-
layout,
5955
tabs: tabs(),
6056
})
6157
}

packages/app/src/components/session/session-header.tsx

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -311,12 +311,14 @@ export function SessionHeader() {
311311
platform,
312312
})
313313

314-
const centerMount = createMemo(() => document.getElementById("opencode-titlebar-center"))
314+
const leftMount = createMemo(
315+
() => document.getElementById("opencode-titlebar-left") ?? document.getElementById("opencode-titlebar-center"),
316+
)
315317
const rightMount = createMemo(() => document.getElementById("opencode-titlebar-right"))
316318

317319
return (
318320
<>
319-
<Show when={centerMount()}>
321+
<Show when={leftMount()}>
320322
{(mount) => (
321323
<Portal mount={mount()}>
322324
<button
@@ -550,7 +552,7 @@ export function SessionHeader() {
550552
</Show>
551553
</div>
552554
</Show>
553-
<div class="hidden md:flex items-center gap-3 ml-2 shrink-0">
555+
<div class="hidden lg:flex items-center gap-3 ml-2 shrink-0">
554556
<TooltipKeybind
555557
title={language.t("command.terminal.toggle")}
556558
keybind={command.keybind("terminal.toggle")}
@@ -583,7 +585,7 @@ export function SessionHeader() {
583585
</Button>
584586
</TooltipKeybind>
585587
</div>
586-
<div class="hidden md:block shrink-0">
588+
<div class="hidden lg:block shrink-0">
587589
<TooltipKeybind title={language.t("command.review.toggle")} keybind={command.keybind("review.toggle")}>
588590
<Button
589591
variant="ghost"
@@ -613,7 +615,7 @@ export function SessionHeader() {
613615
</Button>
614616
</TooltipKeybind>
615617
</div>
616-
<div class="hidden md:block shrink-0">
618+
<div class="hidden lg:block shrink-0">
617619
<TooltipKeybind
618620
title={language.t("command.fileTree.toggle")}
619621
keybind={command.keybind("fileTree.toggle")}

packages/app/src/context/command.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -315,8 +315,9 @@ export const { use: useCommand, provider: CommandProvider } = createSimpleContex
315315
const sig = signatureFromEvent(event)
316316
const isPalette = palette().has(sig)
317317
const option = keymap().get(sig)
318+
const modified = event.ctrlKey || event.metaKey || event.altKey
318319

319-
if (isEditableTarget(event.target) && !isPalette && !isAllowedEditableKeybind(option?.id)) return
320+
if (isEditableTarget(event.target) && !isPalette && !isAllowedEditableKeybind(option?.id) && !modified) return
320321

321322
if (isPalette) {
322323
event.preventDefault()

packages/app/src/pages/session.tsx

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@ export default function Page() {
232232
})
233233
}
234234

235-
const isDesktop = createMediaQuery("(min-width: 768px)")
235+
const isDesktop = createMediaQuery("(min-width: 1024px)")
236236
const desktopReviewOpen = createMemo(() => isDesktop() && view().reviewPanel.opened())
237237
const desktopFileTreeOpen = createMemo(() => isDesktop() && layout.fileTree.opened())
238238
const desktopSidePanelOpen = createMemo(() => desktopReviewOpen() || desktopFileTreeOpen())
@@ -1551,7 +1551,13 @@ export default function Page() {
15511551
return (
15521552
<div class="relative bg-background-base size-full overflow-hidden flex flex-col">
15531553
<SessionHeader />
1554-
<div class="flex-1 min-h-0 flex flex-col md:flex-row">
1554+
<div
1555+
class="flex-1 min-h-0 flex"
1556+
classList={{
1557+
"flex-col": !isDesktop(),
1558+
"flex-row": isDesktop(),
1559+
}}
1560+
>
15551561
<SessionMobileTabs
15561562
open={!isDesktop() && !!params.id}
15571563
mobileTab={store.mobileTab}

packages/app/src/pages/session/session-mobile-tabs.tsx

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,11 @@ export function SessionMobileTabs(props: {
1313
return (
1414
<Show when={props.open}>
1515
<Tabs value={props.mobileTab} class="h-auto">
16-
<Tabs.List>
17-
<Tabs.Trigger value="session" class="w-1/2" classes={{ button: "w-full" }} onClick={props.onSession}>
16+
<Tabs.List class="!grid !grid-cols-2 [&::after]:hidden [&_[data-slot=tabs-trigger-wrapper]]:!max-w-none">
17+
<Tabs.Trigger value="session" class="w-full" classes={{ button: "w-full" }} onClick={props.onSession}>
1818
{props.t("session.tab.session")}
1919
</Tabs.Trigger>
20-
<Tabs.Trigger
21-
value="changes"
22-
class="w-1/2 !border-r-0"
23-
classes={{ button: "w-full" }}
24-
onClick={props.onChanges}
25-
>
20+
<Tabs.Trigger value="changes" class="w-full" classes={{ button: "w-full" }} onClick={props.onChanges}>
2621
{props.hasReview
2722
? props.t("session.review.filesChanged", { count: props.reviewCount })
2823
: props.t("session.review.change.other")}

0 commit comments

Comments
 (0)