feat: loading screen, initSDK on bootstrap, fix FOUC for theme (#10350)

* feat: loading screen, initSDK on bootstrap, fix FOUC for theme

* pulsate immich logo, don't set localstorage

* Make it spin

* Rework error handling a bit

* Cleanup

* fix test

* rename, memoize

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
This commit is contained in:
Min Idzelis
2024-08-25 18:34:08 -04:00
committed by GitHub
parent b653a20d15
commit b2dd5a3152
15 changed files with 328 additions and 173 deletions
+24 -12
View File
@@ -1,26 +1,38 @@
import { AppRoute } from '$lib/constants';
import { serverConfig } from '$lib/stores/server-config.store';
import { getFormatter } from '$lib/utils/i18n';
import { getServerConfig } from '@immich/sdk';
import { init } from '$lib/utils/server';
import { redirect } from '@sveltejs/kit';
import { get } from 'svelte/store';
import { loadUser } from '../lib/utils/auth';
import type { PageLoad } from './$types';
export const ssr = false;
export const csr = true;
export const load = (async () => {
const authenticated = await loadUser();
if (authenticated) {
redirect(302, AppRoute.PHOTOS);
}
export const load = (async ({ fetch }) => {
let $t = (arg: string) => arg;
try {
await init(fetch);
const authenticated = await loadUser();
if (authenticated) {
redirect(302, AppRoute.PHOTOS);
}
const { isInitialized } = await getServerConfig();
if (isInitialized) {
// Redirect to login page if there exists an admin account (i.e. server is initialized)
redirect(302, AppRoute.AUTH_LOGIN);
}
const { isInitialized } = get(serverConfig);
if (isInitialized) {
// Redirect to login page if there exists an admin account (i.e. server is initialized)
redirect(302, AppRoute.AUTH_LOGIN);
}
const $t = await getFormatter();
$t = await getFormatter();
// eslint-disable-next-line @typescript-eslint/no-explicit-any
} catch (redirectError: any) {
if (redirectError?.status === 302) {
throw redirectError;
}
}
return {
meta: {