Skip to content

Commit 5a73611

Browse files
committed
ship: reset iter 1 - preserve valid search route
1 parent da9269e commit 5a73611

2 files changed

Lines changed: 14 additions & 1 deletion

File tree

apps/desktop/src/renderer/components/prs/prsRouteState.test.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,4 +175,16 @@ describe("resolvePrsActiveTab", () => {
175175
expect(resolved.isWorkflowRoute).toBe(true);
176176
expect(resolved.activeTab).toBe("integration");
177177
});
178+
179+
it("ignores invalid hash route signals instead of dropping valid search params", () => {
180+
const parsed = parsePrsRouteState({
181+
search: "?tab=normal&prId=pr-123",
182+
hash: "#/prs?tab=bogus",
183+
});
184+
const resolved = resolvePrsActiveTab(parsed);
185+
expect(parsed.tab).toBe("normal");
186+
expect(parsed.prId).toBe("pr-123");
187+
expect(resolved.isWorkflowRoute).toBe(false);
188+
expect(resolved.activeTab).toBe("normal");
189+
});
178190
});

apps/desktop/src/renderer/components/prs/prsRouteState.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,8 @@ function parseOptionalId(value: string | null): string | null {
4444
export function parsePrsRouteState(args: { search?: string | null; hash?: string | null }): ParsedPrsRouteState {
4545
const searchParams = parseSearch(args.search ?? "");
4646
const hashParams = parseHashParams(args.hash ?? "");
47-
const hashHasRouteSignal = hashParams.has("tab") || hashParams.has("workflow");
47+
const hashHasRouteSignal =
48+
parseTab(hashParams.get("tab")) !== null || parseWorkflowTab(hashParams.get("workflow")) !== null;
4849
const routeParams = hashHasRouteSignal ? hashParams : searchParams;
4950

5051
const pick = (key: string): string | null => parseOptionalId(routeParams.get(key));

0 commit comments

Comments
 (0)