forked from MapComplete/MapComplete
		
	
		
			
	
	
		
			34 lines
		
	
	
	
		
			951 B
		
	
	
	
		
			Svelte
		
	
	
	
	
	
		
		
			
		
	
	
			34 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} |