mirror of
https://github.com/tiennm99/ccs.git
synced 2026-07-16 10:16:49 +00:00
refactor(ui): remove unused last-route restore helpers
This commit is contained in:
@@ -1,5 +1,4 @@
|
||||
const LAST_ROUTE_STORAGE_KEY = 'ccs-dashboard:last-route';
|
||||
const NON_RESTORABLE_PATHS = new Set(['/login']);
|
||||
|
||||
export function storeLastRoute(pathname: string, search = '', hash = ''): void {
|
||||
try {
|
||||
@@ -8,30 +7,3 @@ export function storeLastRoute(pathname: string, search = '', hash = ''): void {
|
||||
// Ignore storage failures (private mode, quota, etc.)
|
||||
}
|
||||
}
|
||||
|
||||
export function getStoredLastRoute(): string | null {
|
||||
try {
|
||||
const route = localStorage.getItem(LAST_ROUTE_STORAGE_KEY);
|
||||
if (!route || !route.startsWith('/')) {
|
||||
return null;
|
||||
}
|
||||
|
||||
const pathOnly = route.split(/[?#]/, 1)[0];
|
||||
if (NON_RESTORABLE_PATHS.has(pathOnly)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return route;
|
||||
} catch {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
export function shouldRestoreRoute(route: string | null): route is string {
|
||||
if (!route) {
|
||||
return false;
|
||||
}
|
||||
|
||||
const pathOnly = route.split(/[?#]/, 1)[0];
|
||||
return pathOnly !== '/' && !NON_RESTORABLE_PATHS.has(pathOnly);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
||||
import { storeLastRoute } from '@/lib/last-route';
|
||||
|
||||
const LAST_ROUTE_STORAGE_KEY = 'ccs-dashboard:last-route';
|
||||
|
||||
describe('storeLastRoute', () => {
|
||||
beforeEach(() => {
|
||||
vi.clearAllMocks();
|
||||
});
|
||||
|
||||
it('writes pathname with search and hash', () => {
|
||||
storeLastRoute('/accounts', '?tab=auth', '#matrix');
|
||||
|
||||
expect(localStorage.setItem).toHaveBeenCalledWith(
|
||||
LAST_ROUTE_STORAGE_KEY,
|
||||
'/accounts?tab=auth#matrix'
|
||||
);
|
||||
});
|
||||
|
||||
it('writes pathname when search and hash are omitted', () => {
|
||||
storeLastRoute('/health');
|
||||
|
||||
expect(localStorage.setItem).toHaveBeenCalledWith(LAST_ROUTE_STORAGE_KEY, '/health');
|
||||
});
|
||||
|
||||
it('does not throw when localStorage write fails', () => {
|
||||
const setItemSpy = vi.spyOn(Storage.prototype, 'setItem').mockImplementation(() => {
|
||||
throw new Error('quota exceeded');
|
||||
});
|
||||
|
||||
expect(() => storeLastRoute('/providers')).not.toThrow();
|
||||
setItemSpy.mockRestore();
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user