chore(web): migration svelte 5 syntax (#13883)

This commit is contained in:
Alex
2024-11-14 08:43:25 -06:00
committed by GitHub
parent 9203a61709
commit 0b3742cf13
310 changed files with 6435 additions and 4176 deletions

View File

@@ -8,29 +8,40 @@
import { SharedLinkType, createSharedLink, updateSharedLink, type SharedLinkResponseDto } from '@immich/sdk';
import { mdiContentCopy, mdiLink } from '@mdi/js';
import { NotificationType, notificationController } from '../notification/notification';
import SettingInputField, { SettingInputFieldType } from '../settings/setting-input-field.svelte';
import SettingInputField from '../settings/setting-input-field.svelte';
import SettingSwitch from '../settings/setting-switch.svelte';
import FullScreenModal from '$lib/components/shared-components/full-screen-modal.svelte';
import { t } from 'svelte-i18n';
import { locale } from '$lib/stores/preferences.store';
import { DateTime, Duration } from 'luxon';
import SettingSelect from '$lib/components/shared-components/settings/setting-select.svelte';
import { SettingInputFieldType } from '$lib/constants';
export let onClose: () => void;
export let albumId: string | undefined = undefined;
export let assetIds: string[] = [];
export let editingLink: SharedLinkResponseDto | undefined = undefined;
export let onCreated: () => void = () => {};
interface Props {
onClose: () => void;
albumId?: string | undefined;
assetIds?: string[];
editingLink?: SharedLinkResponseDto | undefined;
onCreated?: () => void;
}
let sharedLink: string | null = null;
let description = '';
let allowDownload = true;
let allowUpload = false;
let showMetadata = true;
let expirationOption: number = 0;
let password = '';
let shouldChangeExpirationTime = false;
let enablePassword = false;
let {
onClose,
albumId = $bindable(undefined),
assetIds = $bindable([]),
editingLink = undefined,
onCreated = () => {},
}: Props = $props();
let sharedLink: string | null = $state(null);
let description = $state('');
let allowDownload = $state(true);
let allowUpload = $state(false);
let showMetadata = $state(true);
let expirationOption: number = $state(0);
let password = $state('');
let shouldChangeExpirationTime = $state(false);
let enablePassword = $state(false);
const expirationOptions: [number, Intl.RelativeTimeFormatUnit][] = [
[30, 'minutes'],
@@ -43,22 +54,23 @@
[1, 'year'],
];
$: relativeTime = new Intl.RelativeTimeFormat($locale);
$: expiredDateOptions = [
let relativeTime = $derived(new Intl.RelativeTimeFormat($locale));
let expiredDateOptions = $derived([
{ text: $t('never'), value: 0 },
...expirationOptions.map(([value, unit]) => ({
text: relativeTime.format(value, unit),
value: Duration.fromObject({ [unit]: value }).toMillis(),
})),
];
]);
// svelte-ignore reactive_declaration_non_reactive_property
$: shareType = albumId ? SharedLinkType.Album : SharedLinkType.Individual;
$: {
let shareType = $derived(albumId ? SharedLinkType.Album : SharedLinkType.Individual);
$effect(() => {
if (!showMetadata) {
allowDownload = false;
}
}
});
if (editingLink) {
if (editingLink.description) {
description = editingLink.description;
@@ -223,22 +235,22 @@
</div>
</section>
<svelte:fragment slot="sticky-bottom">
{#snippet stickyBottom()}
{#if !sharedLink}
{#if editingLink}
<Button size="sm" fullwidth on:click={handleEditLink}>{$t('confirm')}</Button>
<Button size="sm" fullwidth onclick={handleEditLink}>{$t('confirm')}</Button>
{:else}
<Button size="sm" fullwidth on:click={handleCreateSharedLink}>{$t('create_link')}</Button>
<Button size="sm" fullwidth onclick={handleCreateSharedLink}>{$t('create_link')}</Button>
{/if}
{:else}
<div class="flex w-full gap-2">
<input class="immich-form-input w-full" bind:value={sharedLink} disabled />
<LinkButton on:click={() => (sharedLink ? copyToClipboard(sharedLink) : '')}>
<LinkButton onclick={() => (sharedLink ? copyToClipboard(sharedLink) : '')}>
<div class="flex place-items-center gap-2 text-sm">
<Icon path={mdiContentCopy} ariaLabel={$t('copy_link_to_clipboard')} size="18" />
</div>
</LinkButton>
</div>
{/if}
</svelte:fragment>
{/snippet}
</FullScreenModal>