- confirm.svelte.ts: context-based async service returning Promise<boolean> - ConfirmDialog.svelte: native <dialog> element, reads service from context - Concurrent calls return false immediately (guard at top of confirm()) - SSR-safe: confirm() returns Promise.resolve(false) on server - getConfirmService() throws descriptive error outside provider tree - 5 Vitest tests: confirm/cancel/Escape/concurrent/outside-provider all green Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
12 lines
333 B
Svelte
12 lines
333 B
Svelte
<script lang="ts">
|
|
import { provideConfirmService, type ConfirmService } from './confirm.svelte.js';
|
|
import ConfirmDialog from '$lib/components/ConfirmDialog.svelte';
|
|
|
|
let { onReady }: { onReady: (service: ConfirmService) => void } = $props();
|
|
|
|
const service = provideConfirmService();
|
|
onReady(service);
|
|
</script>
|
|
|
|
<ConfirmDialog />
|