mirror of
https://seed.radicle.dev/rad:z4V1sjrXqjvFdnCUbxPFqd5p4DtH5.git
synced 2026-10-25 14:50:30 +08:00
46 lines
971 B
Svelte
46 lines
971 B
Svelte
<script lang="ts">
|
|
import { createEventDispatcher } from 'svelte';
|
|
import Modal from '@app/Modal.svelte';
|
|
import type { Err } from '@app/error';
|
|
|
|
const dispatch = createEventDispatcher();
|
|
|
|
export let error: Err | null = null;
|
|
export let title = "Error";
|
|
export let emoji = "";
|
|
export let subtitle = "";
|
|
export let message = "";
|
|
export let floating = false;
|
|
export let subtle = false;
|
|
export let action = floating ? "Close" : "Back";
|
|
|
|
let body = message || (error && error.message) || "";
|
|
</script>
|
|
|
|
<Modal on:close error {floating} {subtle}>
|
|
<span slot="title">
|
|
{#if emoji}
|
|
<div>{emoji}</div>
|
|
{/if}
|
|
{title}
|
|
</span>
|
|
|
|
<span slot="subtitle">
|
|
{subtitle}
|
|
</span>
|
|
|
|
<span slot="body">
|
|
<slot>
|
|
<strong>Error:</strong> {body}
|
|
</slot>
|
|
</span>
|
|
|
|
<span slot="actions">
|
|
<slot name="actions">
|
|
<button on:click={() => dispatch('close')}>
|
|
{action}
|
|
</button>
|
|
</slot>
|
|
</span>
|
|
</Modal>
|