summaryrefslogtreecommitdiff
path: root/ping/frontend/src/lib/components/Button.svelte
diff options
context:
space:
mode:
Diffstat (limited to 'ping/frontend/src/lib/components/Button.svelte')
-rw-r--r--ping/frontend/src/lib/components/Button.svelte17
1 files changed, 17 insertions, 0 deletions
diff --git a/ping/frontend/src/lib/components/Button.svelte b/ping/frontend/src/lib/components/Button.svelte
new file mode 100644
index 0000000..54b26ab
--- /dev/null
+++ b/ping/frontend/src/lib/components/Button.svelte
@@ -0,0 +1,17 @@
+<script lang="ts">
+ // Accept props and ensure onclick matches the expected event handler signature
+ const {
+ href = undefined as string | undefined,
+ onclick = undefined as
+ | ((event: MouseEvent & { currentTarget: EventTarget & HTMLButtonElement }) => void)
+ | undefined,
+ disabled = false,
+ children
+ } = $props();
+</script>
+
+{#if href}
+ <a class="btn" {href}>{@render children?.()}</a>
+{:else}
+ <button class="btn" {onclick} {disabled}>{@render children?.()}</button>
+{/if}