diff --git a/packages/app/e2e/regression/review-open-file.spec.ts b/packages/app/e2e/regression/review-open-file.spec.ts index a67f12bbc89..5cf6ced6947 100644 --- a/packages/app/e2e/regression/review-open-file.spec.ts +++ b/packages/app/e2e/regression/review-open-file.spec.ts @@ -93,11 +93,18 @@ test("opens and searches project files inline", async ({ page }) => { await contextButton.click() await expect(panel.getByRole("tab", { name: "Context", selected: true })).toBeVisible() await panel.getByRole("button", { name: "Open file" }).click() - await expect(panel.getByRole("tab", { name: "Open file", selected: true })).toBeVisible() + const openFileTab = panel.getByRole("tab", { name: "Open file" }) + const openFileTabClose = openFileTab.locator("..").getByRole("button", { name: "Close tab" }) + await expect(openFileTab).toHaveAttribute("data-selected", "") + await expect(openFileTab.locator("use")).toHaveAttribute("href", "#opencode-v2-icon-file-tree") + await expect(openFileTab.getByText("Open file", { exact: true }).locator("..")).not.toHaveClass(/italic/) + await expect(openFileTabClose).toHaveAttribute("data-variant", "ghost-muted") + await expect(openFileTabClose).toHaveCSS("opacity", "1") await expect(sidebarToggle).toBeDisabled() await expect(sidebar).toBeVisible() await contextButton.click() await expect(panel.getByRole("tab", { name: "Context", selected: true })).toBeVisible() + await expect(openFileTabClose).toHaveCSS("opacity", "0") await expect(sidebar).toBeHidden() await panel.getByRole("button", { name: "Open file" }).click() const filter = panel.getByRole("combobox", { name: "Filter files" }) diff --git a/packages/app/src/session/files/session-side-panel.tsx b/packages/app/src/session/files/session-side-panel.tsx index 562752313e4..3b63c0765a9 100644 --- a/packages/app/src/session/files/session-side-panel.tsx +++ b/packages/app/src/session/files/session-side-panel.tsx @@ -359,6 +359,7 @@ export function SessionSidePanel(props: { > tabs().close(SESSION_OPEN_FILE_TAB)} closeButton={ - tabs().close(SESSION_OPEN_FILE_TAB)} + { + event.preventDefault() + event.stopPropagation() + }} + onClick={(event) => { + event.preventDefault() + event.stopPropagation() + tabs().close(SESSION_OPEN_FILE_TAB) + }} + icon={} aria-label={language.t("common.closeTab")} /> } hideCloseButton > -
- +
+ {language.t("command.file.open")}