forked from MapComplete/MapComplete
		
	
		
			
				
	
	
		
			33 lines
		
	
	
	
		
			951 B
		
	
	
	
		
			Svelte
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
	
		
			951 B
		
	
	
	
		
			Svelte
		
	
	
	
	
	
<script lang="ts">
 | 
						|
    import {UIEventSource} from "../../Logic/UIEventSource";
 | 
						|
    import {onDestroy} from "svelte";
 | 
						|
 | 
						|
    /**
 | 
						|
     * Functions as 'If', but uses 'display:hidden' instead.
 | 
						|
     */
 | 
						|
    export let condition: UIEventSource<boolean>;
 | 
						|
    let _c = condition.data;
 | 
						|
    let hasBeenShownPositive = false
 | 
						|
    let hasBeenShownNegative = false
 | 
						|
    onDestroy(condition.addCallbackAndRun(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`! */
 | 
						|
        hasBeenShownPositive = hasBeenShownPositive || c
 | 
						|
        hasBeenShownNegative = hasBeenShownNegative || !c
 | 
						|
        _c = c;
 | 
						|
        return false
 | 
						|
    }))
 | 
						|
 | 
						|
</script>
 | 
						|
 | 
						|
{#if hasBeenShownPositive}
 | 
						|
<span class={_c ? "" : "hidden"}>
 | 
						|
  <slot/>
 | 
						|
</span>
 | 
						|
{/if}
 | 
						|
 | 
						|
{#if hasBeenShownNegative}
 | 
						|
<span class={_c ? "hidden" : ""}>
 | 
						|
  <slot name="else"/>
 | 
						|
</span>
 | 
						|
{/if}
 |