forked from tsai/budibase
4 changed files with 97 additions and 62 deletions
@ -1,43 +1,44 @@ |
|||||
<script> |
<script> |
||||
import UIkit from "uikit"; |
import UIkit from "uikit"; |
||||
|
|
||||
export let isOpen = false; |
export let isOpen = false; |
||||
export let onClosed = () => {}; |
export let onClosed = () => {}; |
||||
export let id = ""; |
export let id = ""; |
||||
|
|
||||
let ukModal; |
let ukModal; |
||||
let listenerAdded = false; |
let listenerAdded = false; |
||||
|
|
||||
$: { |
$: { |
||||
if(ukModal && !listenerAdded) { |
if (ukModal && !listenerAdded) { |
||||
listenerAdded = true; |
listenerAdded = true; |
||||
ukModal.addEventListener("hidden", onClosed); |
ukModal.addEventListener("hidden", onClosed); |
||||
} |
} |
||||
|
|
||||
if(ukModal) { |
if (ukModal) { |
||||
if(isOpen) { |
if (isOpen) { |
||||
UIkit.modal(ukModal).show(); |
UIkit.modal(ukModal).show(); |
||||
} else { |
} else { |
||||
UIkit.modal(ukModal).hide(); |
UIkit.modal(ukModal).hide(); |
||||
} |
} |
||||
} |
} |
||||
} |
} |
||||
|
|
||||
</script> |
</script> |
||||
|
|
||||
<div bind:this={ukModal} uk-modal {id}> |
|
||||
<div class="uk-modal-dialog uk-modal-body" uk-overflow-auto> |
|
||||
<slot /> |
|
||||
</div> |
|
||||
</div> |
|
||||
|
|
||||
|
|
||||
<style> |
<style> |
||||
|
.uk-modal-dialog { |
||||
.uk-modal-dialog { |
border-radius: 0.3rem; |
||||
border-radius: .3rem; |
|
||||
width: 60%; |
width: 60%; |
||||
height: 80vh; |
height: 80vh; |
||||
} |
display: flex; |
||||
|
flex-direction: column; |
||||
|
} |
||||
|
</style> |
||||
|
|
||||
</style> |
<div bind:this={ukModal} uk-modal {id}> |
||||
|
<div class="uk-modal-dialog uk-modal-body" uk-overflow-auto> |
||||
|
{#if onClosed} |
||||
|
<button class="uk-modal-close-default" type="button" uk-close /> |
||||
|
{/if} |
||||
|
<slot /> |
||||
|
</div> |
||||
|
</div> |
||||
|
|||||
Loading…
Reference in new issue