Coves frontend - a photon fork
at main 44 lines 1.1 kB view raw
1<script lang="ts"> 2 import { Button, Modal } from 'mono-svelte' 3 import { Icon } from 'svelte-hero-icons/dist' 4 import { shownModal } from './modal' 5 6 let isOpen = $derived(!!$shownModal) 7</script> 8 9{#if $shownModal} 10 <Modal 11 title={$shownModal.title} 12 dismissable={$shownModal.dismissable} 13 ondismissed={() => shownModal.set(undefined)} 14 open={isOpen} 15 > 16 {#if $shownModal.snippet} 17 {@render $shownModal.snippet?.()} 18 {/if} 19 {#if $shownModal.body} 20 <p>{$shownModal.body}</p> 21 {/if} 22 {#if $shownModal.actions} 23 <div 24 class="flex items-center gap-2 {$shownModal.actions.length >= 3 25 ? 'flex-col' 26 : 'flex-row'}" 27 > 28 {#each $shownModal.actions as action (action)} 29 <Button 30 size="lg" 31 class="flex-1 w-full" 32 onclick={action.action} 33 color={action.type} 34 > 35 {#if action.icon} 36 <Icon src={action.icon} mini size="16" /> 37 {/if} 38 {action.content} 39 </Button> 40 {/each} 41 </div> 42 {/if} 43 </Modal> 44{/if}