diff --git a/web/i18n/en/button.json b/web/i18n/en/button.json index f066049e..e75ac3d1 100644 --- a/web/i18n/en/button.json +++ b/web/i18n/en/button.json @@ -17,5 +17,7 @@ "export": "export", "yes": "yes", "no": "no", - "clear": "clear" + "clear": "clear", + "show_input": "show input", + "hide_input": "hide input" } diff --git a/web/src/components/settings/SettingsInput.svelte b/web/src/components/settings/SettingsInput.svelte index 35197979..9bf90a47 100644 --- a/web/src/components/settings/SettingsInput.svelte +++ b/web/src/components/settings/SettingsInput.svelte @@ -15,17 +15,18 @@ import IconX from "@tabler/icons-svelte/IconX.svelte"; import IconCheck from "@tabler/icons-svelte/IconCheck.svelte"; + import IconEye from "@tabler/icons-svelte/IconEye.svelte"; + import IconEyeClosed from "@tabler/icons-svelte/IconEyeClosed.svelte"; + export let settingId: Id; export let settingContext: Context; export let placeholder: string; export let altText: string; export let type: "url" | "uuid" = "url"; - export let isPassword = false; + export let sensitive = false; export let showInstanceWarning = false; - let inputType = isPassword ? "password" : "text"; - const regex = { url: "https?:\\/\\/[a-z0-9.\\-]+(:\\d+)?/?", uuid: "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$", @@ -36,6 +37,10 @@ let inputFocused = false; let validInput = false; + let inputHidden = true; + + $: inputType = sensitive && inputHidden ? "password" : "text"; + const writeToSettings = (value: string, type: "url" | "uuid" | "text") => { updateSetting({ [settingContext]: { @@ -62,13 +67,20 @@