diff options
| author | Fuwn <[email protected]> | 2024-01-06 05:49:33 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2024-01-06 05:49:33 -0800 |
| commit | 08ba7284383cff74971659963c87a2eb4cd3c031 (patch) | |
| tree | d7e7c37c1788b27bda3201dae232284ddfcf957f /src/lib/Tools/InputTemplate.svelte | |
| parent | build(koi): task runner (diff) | |
| download | due.moe-08ba7284383cff74971659963c87a2eb4cd3c031.tar.xz due.moe-08ba7284383cff74971659963c87a2eb4cd3c031.zip | |
refactor(tools): input template
Diffstat (limited to 'src/lib/Tools/InputTemplate.svelte')
| -rw-r--r-- | src/lib/Tools/InputTemplate.svelte | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/src/lib/Tools/InputTemplate.svelte b/src/lib/Tools/InputTemplate.svelte new file mode 100644 index 00000000..16b4ec8f --- /dev/null +++ b/src/lib/Tools/InputTemplate.svelte @@ -0,0 +1,51 @@ +<script lang="ts"> + import { clearAllParameters } from '$lib/Utility/parameters'; + import { onMount } from 'svelte'; + + export let field: string; + export let submission: string; + export let event: string; + export let submitText: string; + export let saveParameters: string[] = []; + export let onSubmit = () => { + return; + }; + export let prompt = `Enter a ${field.toLowerCase()} to search for to continue.`; + + let input = ''; + + onMount(() => clearAllParameters(saveParameters)); +</script> + +<div class="card"> + <p> + <input + type="text" + placeholder={field} + bind:value={input} + on:keypress={(e) => { + if (e.key === 'Enter') { + submission = input; + + onSubmit(); + } + }} + /> + <button + class="button-lined" + on:click={() => (submission = input)} + title="Or click your Enter key" + data-umami-event={event} + > + {submitText} + </button> + </p> + + {#if submission !== ''} + <slot /> + {:else} + <p /> + + {prompt} + {/if} +</div> |