aboutsummaryrefslogtreecommitdiff
path: root/src/lib/Tools/InputTemplate.svelte
diff options
context:
space:
mode:
authorFuwn <[email protected]>2024-01-06 05:49:33 -0800
committerFuwn <[email protected]>2024-01-06 05:49:33 -0800
commit08ba7284383cff74971659963c87a2eb4cd3c031 (patch)
treed7e7c37c1788b27bda3201dae232284ddfcf957f /src/lib/Tools/InputTemplate.svelte
parentbuild(koi): task runner (diff)
downloaddue.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.svelte51
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>