immich/web/src/lib/stores/user.svelte.ts

30 lines
774 B
TypeScript
Raw Normal View History

import { eventManager } from '$lib/stores/event-manager.svelte';
import type {
AlbumResponseDto,
ServerAboutResponseDto,
ServerStorageResponseDto,
ServerVersionHistoryResponseDto,
} from '@immich/sdk';
interface UserInteractions {
recentAlbums?: AlbumResponseDto[];
versions?: ServerVersionHistoryResponseDto[];
aboutInfo?: ServerAboutResponseDto;
serverInfo?: ServerStorageResponseDto;
}
const defaultUserInteraction: UserInteractions = {
recentAlbums: undefined,
versions: undefined,
aboutInfo: undefined,
serverInfo: undefined,
};
export const userInteraction = $state<UserInteractions>(defaultUserInteraction);
const reset = () => {
Object.assign(userInteraction, defaultUserInteraction);
};
eventManager.on('auth.logout', () => reset());