diff --git a/src/lib/ui/Button.svelte b/src/lib/ui/Button.svelte index 788828f..91039e5 100644 --- a/src/lib/ui/Button.svelte +++ b/src/lib/ui/Button.svelte @@ -5,62 +5,62 @@ const dispatch = createEventDispatcher(); + let className = ""; + export { className as class }; export let active = false; export let filled = false; export let disabled = false; export let centered = false; export let label = undefined; export let sound = "default"; - export let href = false; + export let href = undefined; + export let onClick = undefined; let classes = []; function click() { if (disabled) return; - if (href) { - const link = document.createElement('a'); - link.href = href; - link.dispatchEvent(new MouseEvent('click', { - bubbles: true, - cancelable: true, - view: window, - ctrlKey: event.ctrlKey, - metaKey: event.metaKey, - shiftKey: event.shiftKey, - altKey: event.altKey, - button: event.button, - })); - return; - } - playSound(sound); dispatch('click'); } afterUpdate(() => { - classes = []; - if (active) classes = ["active"]; - if (filled) classes = ["filled"]; - if (disabled) classes = ["disabled"]; + classes = className.split(' '); + if (active) classes.push("active"); + if (filled) classes.push("filled"); + if (disabled) classes.push("disabled"); if (centered) classes.push("centered"); }); - +{#if href} + click()}> + + + + + +{:else} + +{/if}