Files
lucent-laravel/front/js/svelte/common/OffCanvas.svelte
T

33 lines
953 B
Svelte
Raw Normal View History

2024-03-25 21:26:21 +02:00
<script>
2024-03-26 01:58:05 +02:00
import {onDestroy, onMount} from "svelte";
2024-03-25 21:26:21 +02:00
import offcanvas from "bootstrap/js/src/offcanvas.js";
export let title = "";
2024-03-30 13:42:38 +02:00
let offCanvasEl;
let offCanvasInstance;
2024-03-25 21:26:21 +02:00
export function show() {
2024-03-30 13:42:38 +02:00
if(!offCanvasInstance){
offCanvasInstance = new offcanvas(offCanvasEl);
}
offCanvasInstance.show();
2024-03-25 21:26:21 +02:00
}
onMount(()=>{
2024-03-30 13:42:38 +02:00
offCanvasInstance = new offcanvas(offCanvasEl);
2024-03-25 21:26:21 +02:00
});
2024-03-30 13:42:38 +02:00
export function hide() {
offCanvasInstance.hide();
2024-03-25 21:26:21 +02:00
}
</script>
2024-03-30 13:42:38 +02:00
<div bind:this={offCanvasEl} class="offcanvas offcanvas-end" tabindex="-1"
2024-03-25 21:26:21 +02:00
aria-labelledby="offcanvasEditContent">
<div class="offcanvas-header">
<h5 class="offcanvas-title">{title}</h5>
<button type="button" on:click={hide} class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body" style="overflow: auto">
<slot/>
</div>
</div>