refactor: use immich/ui PasswordInput (#22099)

refactor: password-input
This commit is contained in:
Jason Rasmussen
2025-09-16 16:09:09 -04:00
committed by GitHub
parent 7fe2f19258
commit 6ffd8e679e
7 changed files with 28 additions and 73 deletions

View File

@@ -1,15 +1,13 @@
<script lang="ts">
import { SettingInputFieldType } from '$lib/constants';
import { PasswordInput } from '@immich/ui';
import { onMount, tick, type Snippet } from 'svelte';
import { t } from 'svelte-i18n';
import { quintOut } from 'svelte/easing';
import type { FormEventHandler } from 'svelte/elements';
import { fly } from 'svelte/transition';
import PasswordField from '../password-field.svelte';
interface Props {
inputType: SettingInputFieldType;
value: string | number | undefined | null;
type Props = {
min?: number;
max?: number;
step?: string;
@@ -23,7 +21,14 @@
passwordAutocomplete?: AutoFill;
descriptionSnippet?: Snippet;
trailingSnippet?: Snippet;
}
} & (
| { inputType: SettingInputFieldType.PASSWORD; value: string }
| { inputType: SettingInputFieldType.NUMBER; value: number | null | undefined }
| {
inputType: SettingInputFieldType.TEXT | SettingInputFieldType.COLOR | SettingInputFieldType.EMAIL;
value: string | null | undefined;
}
);
let {
inputType,
@@ -145,15 +150,15 @@
{@render trailingSnippet?.()}
</div>
{:else}
<PasswordField
<PasswordInput
aria-describedby={description ? `${label}-desc` : undefined}
aria-labelledby="{label}-label"
size="small"
id={label}
name={label}
autocomplete={passwordAutocomplete}
{required}
password={(value || '').toString()}
onInput={(passwordValue) => (value = passwordValue)}
bind:value={value as string}
{disabled}
{title}
/>