fix(front): clean localStorage on user change
- fix issue with selected drive and user logout/login via another user
(was raising a "404 not found")
- normalize all localStorage to "oxi-" prefix
- add a specific frontend/AGENTS.md for frontend part (stop increasing the global AGENTS.md)
This commit is contained in:
@@ -107,7 +107,7 @@
|
||||
);
|
||||
return;
|
||||
}
|
||||
session.user = data.user;
|
||||
session.setUser(data.user);
|
||||
await goto(resolve(redirectTarget), { replaceState: true });
|
||||
} catch (err) {
|
||||
error = err instanceof Error ? err.message : t('auth.login_error', 'Error logging in');
|
||||
@@ -203,7 +203,7 @@
|
||||
if (oidcCode) {
|
||||
const user = await exchangeOidcCode(oidcCode);
|
||||
if (user) {
|
||||
session.user = user;
|
||||
session.setUser(user);
|
||||
await goto(resolve(redirectTarget), { replaceState: true });
|
||||
return;
|
||||
}
|
||||
@@ -214,7 +214,7 @@
|
||||
try {
|
||||
const me = await fetchMe();
|
||||
if (me) {
|
||||
session.user = me;
|
||||
session.setUser(me);
|
||||
await goto(resolve(redirectTarget), { replaceState: true });
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1,11 +1,22 @@
|
||||
import { it, expect, vi, beforeEach } from 'vitest';
|
||||
import { render, screen, fireEvent, waitFor } from '@testing-library/svelte';
|
||||
|
||||
const { goto, pageState, session } = vi.hoisted(() => ({
|
||||
goto: vi.fn(),
|
||||
pageState: { url: new URL('http://localhost/login') } as { url: URL },
|
||||
session: { user: null } as { user: unknown }
|
||||
}));
|
||||
const { goto, pageState, session } = vi.hoisted(() => {
|
||||
// `setUser` mirrors the real SessionStore method: sets the user and
|
||||
// runs `ensureActiveUser` (localStorage cleanup on account switch).
|
||||
// Tests don't care about the cleanup; the mock just assigns.
|
||||
const store: { user: unknown; setUser: (u: unknown) => void } = {
|
||||
user: null,
|
||||
setUser(u) {
|
||||
store.user = u;
|
||||
}
|
||||
};
|
||||
return {
|
||||
goto: vi.fn(),
|
||||
pageState: { url: new URL('http://localhost/login') } as { url: URL },
|
||||
session: store
|
||||
};
|
||||
});
|
||||
vi.mock('$app/navigation', () => ({ goto }));
|
||||
vi.mock('$app/state', () => ({ page: pageState }));
|
||||
vi.mock('$lib/stores/session.svelte', () => ({ session }));
|
||||
|
||||
@@ -37,8 +37,8 @@
|
||||
|
||||
type GroupMode = 'day' | 'month' | 'year';
|
||||
type LayoutMode = 'square' | 'justified';
|
||||
const GROUP_KEY = 'oxicloud-photos-group';
|
||||
const LAYOUT_KEY = 'oxicloud-photos-layout';
|
||||
const GROUP_KEY = 'oxi-photos-group';
|
||||
const LAYOUT_KEY = 'oxi-photos-layout';
|
||||
let groupMode = $state<GroupMode>('month');
|
||||
let layoutMode = $state<LayoutMode>('square');
|
||||
const selected = useSelection();
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
type Crumb = { id?: string; name: string };
|
||||
type ViewMode = 'grid' | 'list';
|
||||
|
||||
const VIEW_KEY = 'oxicloud_share_view';
|
||||
const VIEW_KEY = 'oxi-share-view';
|
||||
const token = $derived(page.params.token ?? '');
|
||||
|
||||
let view = $state<State>('loading');
|
||||
|
||||
Reference in New Issue
Block a user