File size: 745 Bytes
377fc96
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<script lang="ts">
  // The network state as a switch: every place that shows Online or Offline flips the
  // simulated-offline override, so the state is never a plain label.
  import Icon from './Icon.svelte';
  import { forceOffline, online } from './core/net';
  export let size = 16;
  export let iconOnly = false;
</script>

<button
  class="net"
  class:off={!$online}
  class:icon-only={iconOnly}
  aria-pressed={$forceOffline}
  aria-label={$forceOffline ? 'Back online' : 'Simulate offline'}
  title={$forceOffline ? 'Back online' : 'Simulate offline'}
  on:click={() => forceOffline.update((v) => !v)}
>
  <Icon name={$online ? 'wifi' : 'wifi-off'} {size} />{#if !iconOnly}<span>{$online ? 'Online' : 'Offline'}</span>{/if}
</button>