Newer
Older
navi-1 / webclient / src / composables / useOnline.js
@Eugene Sukhodolskiy Eugene Sukhodolskiy 13 hours ago 566 bytes PWA: installable webclient, offline shell, web push
import { ref, onMounted, onUnmounted } from 'vue'

/** Browser online/offline state via navigator.onLine + events. */
export function useOnline() {
  const online = ref(navigator.onLine)

  function setOnline() { online.value = true }
  function setOffline() { online.value = false }

  onMounted(() => {
    window.addEventListener('online', setOnline)
    window.addEventListener('offline', setOffline)
  })
  onUnmounted(() => {
    window.removeEventListener('online', setOnline)
    window.removeEventListener('offline', setOffline)
  })

  return { online }
}