feat(web): license UI (#11182)

This commit is contained in:
Alex 2024-07-18 10:56:27 -05:00 committed by GitHub
parent 88f62087fd
commit ef0e1a81b9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
39 changed files with 1157 additions and 148 deletions

View file

@ -1,8 +1,10 @@
import { browser } from '$app/environment';
import { licenseStore } from '$lib/stores/license.store';
import { serverInfo } from '$lib/stores/server-info.store';
import { preferences as preferences$, user as user$ } from '$lib/stores/user.store';
import { getMyPreferences, getMyUser, getStorage } from '@immich/sdk';
import { getAboutInfo, getMyPreferences, getMyUser, getStorage } from '@immich/sdk';
import { redirect } from '@sveltejs/kit';
import { DateTime } from 'luxon';
import { get } from 'svelte/store';
import { AppRoute } from '../constants';
@ -15,10 +17,17 @@ export const loadUser = async () => {
try {
let user = get(user$);
let preferences = get(preferences$);
let serverInfo;
if ((!user || !preferences) && hasAuthCookie()) {
[user, preferences] = await Promise.all([getMyUser(), getMyPreferences()]);
[user, preferences, serverInfo] = await Promise.all([getMyUser(), getMyPreferences(), getAboutInfo()]);
user$.set(user);
preferences$.set(preferences);
// Check for license status
if (serverInfo.licensed || user.license?.activatedAt) {
licenseStore.setLicenseStatus(true);
}
}
return user;
} catch {
@ -64,3 +73,17 @@ export const requestServerInfo = async () => {
serverInfo.set(data);
}
};
export const getAccountAge = (): number => {
const user = get(user$);
if (!user) {
return 0;
}
const createdDate = DateTime.fromISO(user.createdAt);
const now = DateTime.now();
const accountAge = now.diff(createdDate, 'days').days.toFixed(0);
return Number(accountAge);
};