forked from MapComplete/MapComplete
		
	
		
			
				
	
	
		
			41 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Svelte
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Svelte
		
	
	
	
	
	
<script lang="ts">
 | 
						|
  import ThemeViewState from "../../Models/ThemeViewState"
 | 
						|
  import Translations from "../i18n/Translations"
 | 
						|
  import Tr from "../Base/Tr.svelte"
 | 
						|
  import Loading from "../Base/Loading.svelte"
 | 
						|
 | 
						|
  export let state: ThemeViewState
 | 
						|
  /**
 | 
						|
   * Gives the contributor some feedback based on the current state:
 | 
						|
   * - is data loading?
 | 
						|
   * - Is all data hidden due to filters?
 | 
						|
   * - Is no data in view?
 | 
						|
   */
 | 
						|
 | 
						|
  let dataIsLoading = state.dataIsLoading
 | 
						|
  let currentState = state.hasDataInView
 | 
						|
  currentState.data === ""
 | 
						|
  const t = Translations.t.centerMessage
 | 
						|
</script>
 | 
						|
 | 
						|
{#if $currentState === "has-visible-features"}
 | 
						|
  <!-- don't show anything -->
 | 
						|
{:else if $currentState === "zoom-to-low"}
 | 
						|
  <div class="alert w-fit p-4">
 | 
						|
    <Tr t={t.zoomIn} />
 | 
						|
  </div>
 | 
						|
{:else if $currentState === "all-filtered-away"}
 | 
						|
  <div class="alert w-fit p-4">
 | 
						|
    <Tr t={t.allFilteredAway} />
 | 
						|
  </div>
 | 
						|
{:else if $dataIsLoading}
 | 
						|
  <div class="alert w-fit p-4">
 | 
						|
    <Loading>
 | 
						|
      <Tr t={Translations.t.centerMessage.loadingData} />
 | 
						|
    </Loading>
 | 
						|
  </div>
 | 
						|
{:else if $currentState === "no-data"}
 | 
						|
  <div class="alert w-fit p-4">
 | 
						|
    <Tr t={t.noData} />
 | 
						|
  </div>
 | 
						|
{/if}
 |