refactor(islands/IsOnline): fix lint warnings
This commit is contained in:
parent
595b9518d5
commit
171655bb08
|
|
@ -1,6 +1,5 @@
|
||||||
import { type Signal, useComputed, useSignal } from '@preact/signals'
|
import { type Signal, useComputed, useSignal } from '@preact/signals'
|
||||||
import { useEffect } from 'preact/hooks'
|
import { useEffect } from 'preact/hooks'
|
||||||
import { IS_BROWSER } from 'fresh/runtime'
|
|
||||||
|
|
||||||
type NetworkConnection = {
|
type NetworkConnection = {
|
||||||
addEventListener: (
|
addEventListener: (
|
||||||
|
|
@ -9,15 +8,15 @@ type NetworkConnection = {
|
||||||
) => void
|
) => void
|
||||||
}
|
}
|
||||||
|
|
||||||
|
declare global {
|
||||||
|
interface Navigator {
|
||||||
|
connection?: NetworkConnection
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export default function IsOnline(
|
export default function IsOnline(
|
||||||
{ online, offline }: { online?: string; offline: string },
|
{ online, offline }: { online?: string; offline: string },
|
||||||
) {
|
) {
|
||||||
if (!IS_BROWSER) {
|
|
||||||
return online
|
|
||||||
? <span style={{ display: 'none' }}></span>
|
|
||||||
: <span>{online}</span>
|
|
||||||
}
|
|
||||||
|
|
||||||
const status = useSignal(true)
|
const status = useSignal(true)
|
||||||
const displayed = useComputed(() => {
|
const displayed = useComputed(() => {
|
||||||
if (status.value && online) {
|
if (status.value && online) {
|
||||||
|
|
@ -26,14 +25,12 @@ export default function IsOnline(
|
||||||
if (status.value) {
|
if (status.value) {
|
||||||
return <span style={{ display: 'none' }}></span>
|
return <span style={{ display: 'none' }}></span>
|
||||||
}
|
}
|
||||||
return <span class={'island__is_online'}>{offline}</span>
|
return <span class='island__is_online'>{offline}</span>
|
||||||
})
|
})
|
||||||
const connection = 'connection' in navigator
|
|
||||||
? navigator.connection as NetworkConnection
|
|
||||||
: null
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
openSocket(status)
|
openSocket(status)
|
||||||
connection?.addEventListener('change', () => {
|
navigator.connection?.addEventListener('change', () => {
|
||||||
fetch('/api/serviceworker/is-online')
|
fetch('/api/serviceworker/is-online')
|
||||||
.then(() => status.value = true)
|
.then(() => status.value = true)
|
||||||
.catch(() => status.value = false)
|
.catch(() => status.value = false)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue