actuel-inactuel/site/plugins/loop/frontend/src/lib/CommentDialog.svelte
isUnknown ab7fd8b2ea
All checks were successful
Deploy / Deploy to Production (push) Successful in 6s
add kirby-loop plugin with French translations
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-23 21:41:50 +01:00

56 lines
1.4 KiB
Svelte

<script lang="ts">
import { getDialogPosition } from "../composables/getDialogPosition";
import CommentForm from "./CommentForm.svelte";
const { handleSubmit, showModal, newMarker, cancel } = $props();
let dialogElement: HTMLDialogElement;
let dialogPosition: { left: number; top: number } = $state({
left: 0,
top: 0,
});
let ready = $state(false);
$effect(() => {
if (showModal) {
dialogElement.showModal();
dialogPosition = getDialogPosition(newMarker, dialogElement);
ready = true;
} else {
dialogElement.close();
ready = false;
}
});
</script>
<dialog
onclose={cancel}
bind:this={dialogElement}
class:is-visible={ready}
style="--left: {dialogPosition.left}px; --top: {dialogPosition.top}px;"
>
<CommentForm {handleSubmit} {cancel} />
</dialog>
<style>
dialog {
--loop-textarea-font-size: var(--comment-dialog-textarea-font-size);
position: var(--comment-dialog-position);
top: var(--top);
left: var(--left);
max-width: var(--comment-dialog-max-width);
max-height: none;
width: 100%;
margin: 0;
border: 0;
padding: 0;
border-radius: var(--comment-dialog-border-radius);
overflow: hidden;
visibility: hidden;
box-shadow: var(--comment-dialog-shadow);
&.is-visible {
visibility: visible;
}
&::backdrop {
background-color: var(--comment-dialog-backdrop-background);
}
}
</style>