23 lines
669 B
Svelte
23 lines
669 B
Svelte
<script lang="ts">
|
|
import { UIEventSource } from "../../Logic/UIEventSource";
|
|
import { onDestroy } from "svelte";
|
|
|
|
/**
|
|
* For some stupid reason, it is very hard to let {#if} work together with UIEventSources, so we wrap then here
|
|
*/
|
|
export let condition: UIEventSource<boolean>;
|
|
let _c = condition.data;
|
|
onDestroy(condition.addCallback(c => {
|
|
/* Do _not_ abbreviate this as `.addCallback(c => _c = c)`. This is the same as writing `.addCallback(c => {return _c = c})`,
|
|
which will _unregister_ the callback if `c = true`! */
|
|
_c = c;
|
|
return false
|
|
}))
|
|
|
|
</script>
|
|
|
|
{#if _c}
|
|
<slot></slot>
|
|
{:else}
|
|
<slot name="else"></slot>
|
|
{/if}
|