Skip to content

Commit 5b85abd

Browse files
refactor: remove assistant auto-launch and simplify redirect flow (#282)
1 parent 634dcd9 commit 5b85abd

6 files changed

Lines changed: 90 additions & 464 deletions

File tree

frontend/src/components/ui/dialog.tsx

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,15 @@ import { X } from "lucide-react"
55
import { cn } from "@/lib/utils"
66
import { useSwipeBack } from '@/hooks/useMobile'
77

8-
const Dialog = DialogPrimitive.Root
8+
const DialogOpenContext = React.createContext<boolean>(true)
9+
10+
function Dialog({ open, ...props }: React.ComponentProps<typeof DialogPrimitive.Root>) {
11+
return (
12+
<DialogOpenContext.Provider value={open ?? true}>
13+
<DialogPrimitive.Root open={open} {...props} />
14+
</DialogOpenContext.Provider>
15+
)
16+
}
917

1018
const DialogTrigger = DialogPrimitive.Trigger
1119

@@ -45,8 +53,9 @@ const DialogContent = React.forwardRef<
4553
DialogContentProps
4654
>(({ className, children, hideCloseButton, fullscreen, mobileFullscreen, mobileSwipeToClose, canSwipeBack, onSwipeBack, overlayClassName, style, ...props }, ref) => {
4755
const isMobileFullscreenMode = fullscreen || mobileFullscreen
56+
const isDialogOpen = React.useContext(DialogOpenContext)
4857
const [isMobile, setIsMobile] = React.useState(() => typeof window !== 'undefined' ? window.innerWidth < 768 : false)
49-
const shouldEnableMobileSwipe = mobileSwipeToClose !== false && isMobile
58+
const shouldEnableMobileSwipe = mobileSwipeToClose !== false && isMobile && isDialogOpen
5059
const shouldAnimateSwipe = shouldEnableMobileSwipe && isMobileFullscreenMode
5160
const swipeContainerRef = React.useRef<HTMLDivElement>(null)
5261
const closeTriggerRef = React.useRef<HTMLButtonElement>(null)

frontend/src/hooks/useAssistantSessionLauncher.test.tsx

Lines changed: 0 additions & 197 deletions
This file was deleted.

frontend/src/hooks/useAssistantSessionLauncher.ts

Lines changed: 0 additions & 93 deletions
This file was deleted.

frontend/src/lib/navigation.test.ts

Lines changed: 12 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ describe('getAssistantPath', () => {
88
});
99

1010
describe('getAssistantSessionListPath', () => {
11-
it('returns /assistant?view=sessions', () => {
12-
expect(getAssistantSessionListPath()).toBe('/assistant?view=sessions');
11+
it('returns /assistant', () => {
12+
expect(getAssistantSessionListPath()).toBe('/assistant');
1313
});
1414
});
1515

@@ -42,8 +42,8 @@ describe('getSessionListPath', () => {
4242
});
4343

4444
it('returns assistant session list path for assistant sessions', () => {
45-
expect(getSessionListPath(42, true)).toBe('/assistant?view=sessions');
46-
expect(getSessionListPath('123', true)).toBe('/assistant?view=sessions');
45+
expect(getSessionListPath(42, true)).toBe('/assistant');
46+
expect(getSessionListPath('123', true)).toBe('/assistant');
4747
});
4848

4949
it('includes tab param when tab is workspaces', () => {
@@ -56,7 +56,7 @@ describe('getSessionListPath', () => {
5656
});
5757

5858
it('ignores tab param for assistant sessions', () => {
59-
expect(getSessionListPath(42, true, 'workspaces')).toBe('/assistant?view=sessions');
59+
expect(getSessionListPath(42, true, 'workspaces')).toBe('/assistant');
6060
});
6161
});
6262

@@ -84,10 +84,10 @@ describe('getSwipeBackTarget', () => {
8484

8585
it('returns assistant session list path for assistant session detail with assistant=1', () => {
8686
expect(getSwipeBackTarget('/repos/42/sessions/abc', '?assistant=1')).toBe(
87-
'/assistant?view=sessions'
87+
'/assistant'
8888
);
8989
expect(getSwipeBackTarget('/repos/123/sessions/xyz', '?assistant=1')).toBe(
90-
'/assistant?view=sessions'
90+
'/assistant'
9191
);
9292
});
9393

@@ -99,26 +99,18 @@ describe('getSwipeBackTarget', () => {
9999
it('preserves tab param in back target', () => {
100100
expect(getSwipeBackTarget('/repos/42/sessions/abc', '?repoTab=workspaces')).toBe('/repos/42?repoTab=workspaces');
101101
expect(getSwipeBackTarget('/repos/42/sessions/abc', '?repoTab=workspaces&assistant=1')).toBe(
102-
'/assistant?view=sessions'
102+
'/assistant'
103103
);
104104
});
105105
});
106106

107107
describe('assistant route', () => {
108-
it('returns assistant session list path for canonical assistant route', () => {
109-
expect(getSwipeBackTarget('/assistant', '')).toBe('/assistant?view=sessions');
110-
});
111-
112-
it('returns root for assistant session list route', () => {
113-
expect(getSwipeBackTarget('/assistant', '?view=sessions')).toBe('/');
114-
});
115-
116-
it('returns assistant session list path for legacy assistant route', () => {
117-
expect(getSwipeBackTarget('/repos/123/assistant', '')).toBe('/assistant?view=sessions');
108+
it('returns root for canonical assistant route', () => {
109+
expect(getSwipeBackTarget('/assistant', '')).toBe('/');
118110
});
119111

120-
it('returns root for legacy assistant session list route', () => {
121-
expect(getSwipeBackTarget('/repos/42/assistant', '?view=sessions')).toBe('/');
112+
it('returns root for legacy assistant route', () => {
113+
expect(getSwipeBackTarget('/repos/123/assistant', '')).toBe('/');
122114
});
123115
});
124116

0 commit comments

Comments
 (0)