Skip to content

Commit 92a77b7

Browse files
authored
fix(app): don't close sidebar on session change (#13013)
1 parent 4f6b929 commit 92a77b7

2 files changed

Lines changed: 36 additions & 14 deletions

File tree

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import { test, expect } from "../fixtures"
2+
import { closeSidebar, hoverSessionItem } from "../actions"
3+
import { projectSwitchSelector, sessionItemSelector } from "../selectors"
4+
5+
test("collapsed sidebar popover stays open when archiving a session", async ({ page, slug, sdk, gotoSession }) => {
6+
const stamp = Date.now()
7+
8+
const one = await sdk.session.create({ title: `e2e sidebar popover archive 1 ${stamp}` }).then((r) => r.data)
9+
const two = await sdk.session.create({ title: `e2e sidebar popover archive 2 ${stamp}` }).then((r) => r.data)
10+
11+
if (!one?.id) throw new Error("Session create did not return an id")
12+
if (!two?.id) throw new Error("Session create did not return an id")
13+
14+
try {
15+
await gotoSession(one.id)
16+
await closeSidebar(page)
17+
18+
const project = page.locator(projectSwitchSelector(slug)).first()
19+
await expect(project).toBeVisible()
20+
await project.hover()
21+
22+
await expect(page.locator(sessionItemSelector(one.id)).first()).toBeVisible()
23+
await expect(page.locator(sessionItemSelector(two.id)).first()).toBeVisible()
24+
25+
const item = await hoverSessionItem(page, one.id)
26+
await item
27+
.getByRole("button", { name: /archive/i })
28+
.first()
29+
.click()
30+
31+
await expect(page.locator(sessionItemSelector(two.id)).first()).toBeVisible()
32+
} finally {
33+
await sdk.session.delete({ sessionID: one.id }).catch(() => undefined)
34+
await sdk.session.delete({ sessionID: two.id }).catch(() => undefined)
35+
}
36+
})

packages/app/src/pages/layout.tsx

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -181,20 +181,6 @@ export default function Layout(props: ParentProps) {
181181
aim.reset()
182182
})
183183

184-
createEffect(
185-
on(
186-
() => ({ dir: params.dir, id: params.id }),
187-
() => {
188-
if (layout.sidebar.opened()) return
189-
if (!state.hoverProject) return
190-
aim.reset()
191-
setState("hoverSession", undefined)
192-
setState("hoverProject", undefined)
193-
},
194-
{ defer: true },
195-
),
196-
)
197-
198184
const autoselecting = createMemo(() => {
199185
if (params.dir) return false
200186
if (!state.autoselect) return false

0 commit comments

Comments
 (0)