/** * Copyright (c) 2023-present Plane Software, Inc. and contributors * SPDX-License-Identifier: AGPL-3.0-only * See the LICENSE file for details. */ import { useState, useEffect } from "react"; const useOnlineStatus = () => { // states const [isOnline, setIsOnline] = useState(typeof navigator !== "undefined" ? navigator.onLine : true); const updateOnlineStatus = () => setIsOnline(navigator.onLine); useEffect(() => { window.addEventListener("online", updateOnlineStatus); window.addEventListener("offline", updateOnlineStatus); return () => { window.removeEventListener("online", updateOnlineStatus); window.removeEventListener("offline", updateOnlineStatus); }; }, []); return { isOnline }; }; export default useOnlineStatus;