Skip to content

Commit 3448118

Browse files
committed
fix(app): mod+f always opens search
1 parent 2bb3dc5 commit 3448118

3 files changed

Lines changed: 53 additions & 3 deletions

File tree

packages/app/e2e/files/file-viewer.spec.ts

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,3 +101,56 @@ test("cmd+f opens text viewer search while prompt is focused", async ({ page, go
101101
await expect(findInput).toBeVisible()
102102
await expect(findInput).toBeFocused()
103103
})
104+
105+
test("cmd+f opens text viewer search while prompt is not focused", async ({ page, gotoSession }) => {
106+
await gotoSession()
107+
108+
await page.locator(promptSelector).click()
109+
await page.keyboard.type("/open")
110+
111+
const command = page.locator('[data-slash-id="file.open"]').first()
112+
await expect(command).toBeVisible()
113+
await page.keyboard.press("Enter")
114+
115+
const dialog = page
116+
.getByRole("dialog")
117+
.filter({ has: page.getByPlaceholder(/search files/i) })
118+
.first()
119+
await expect(dialog).toBeVisible()
120+
121+
const input = dialog.getByRole("textbox").first()
122+
await input.fill("package.json")
123+
124+
const items = dialog.locator('[data-slot="list-item"][data-key^="file:"]')
125+
let index = -1
126+
await expect
127+
.poll(
128+
async () => {
129+
const keys = await items.evaluateAll((nodes) => nodes.map((node) => node.getAttribute("data-key") ?? ""))
130+
index = keys.findIndex((key) => /packages[\\/]+app[\\/]+package\.json$/i.test(key.replace(/^file:/, "")))
131+
return index >= 0
132+
},
133+
{ timeout: 30_000 },
134+
)
135+
.toBe(true)
136+
137+
const item = items.nth(index)
138+
await expect(item).toBeVisible()
139+
await item.click()
140+
141+
await expect(dialog).toHaveCount(0)
142+
143+
const tab = page.getByRole("tab", { name: "package.json" })
144+
await expect(tab).toBeVisible()
145+
await tab.click()
146+
147+
const viewer = page.locator('[data-component="file"][data-mode="text"]').first()
148+
await expect(viewer).toBeVisible()
149+
150+
await viewer.click()
151+
await page.keyboard.press(`${modKey}+f`)
152+
153+
const findInput = page.getByPlaceholder("Find")
154+
await expect(findInput).toBeVisible()
155+
await expect(findInput).toBeFocused()
156+
})

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,6 @@ export function FileTabContent(props: { tab: string }) {
234234
if (typeof window === "undefined") return
235235

236236
const onKeyDown = (event: KeyboardEvent) => {
237-
if (event.defaultPrevented) return
238237
if (tabs().active() !== props.tab) return
239238
if (!(event.metaKey || event.ctrlKey) || event.altKey || event.shiftKey) return
240239
if (event.key.toLowerCase() !== "f") return

packages/ui/src/components/session-review.tsx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -355,8 +355,6 @@ export const SessionReview = (props: SessionReviewProps) => {
355355
if (typeof window === "undefined") return
356356

357357
const onKeyDown = (event: KeyboardEvent) => {
358-
if (event.defaultPrevented) return
359-
360358
const mod = event.metaKey || event.ctrlKey
361359
if (!mod) return
362360

0 commit comments

Comments
 (0)