refactor(islands/IsOnline): fix lint warnings

This commit is contained in:
Julien Oculi 2025-05-14 09:45:38 +02:00
parent 595b9518d5
commit 171655bb08

View file

@ -1,6 +1,5 @@
import { type Signal, useComputed, useSignal } from '@preact/signals'
import { useEffect } from 'preact/hooks'
import { IS_BROWSER } from 'fresh/runtime'
type NetworkConnection = {
addEventListener: (
@ -9,15 +8,15 @@ type NetworkConnection = {
) => void
}
declare global {
interface Navigator {
connection?: NetworkConnection
}
}
export default function IsOnline(
{ online, offline }: { online?: string; offline: string },
) {
if (!IS_BROWSER) {
return online
? <span style={{ display: 'none' }}></span>
: <span>{online}</span>
}
const status = useSignal(true)
const displayed = useComputed(() => {
if (status.value && online) {
@ -26,14 +25,12 @@ export default function IsOnline(
if (status.value) {
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(() => {
openSocket(status)
connection?.addEventListener('change', () => {
navigator.connection?.addEventListener('change', () => {
fetch('/api/serviceworker/is-online')
.then(() => status.value = true)
.catch(() => status.value = false)