fix(ssr-navigator): resolve ReferenceError navigator is not defined during Next.js static prerendering in useNetworkStatus hook

This commit is contained in:
parsa aghaei 2026-07-27 14:50:15 +03:30
parent eb6318ecc1
commit dac41b14ee
2 changed files with 6 additions and 2 deletions

View File

@ -197,7 +197,7 @@ export default function ProductPage({ productSlug }: { productSlug: string }) {
<div className="flex items-center gap-2"> <div className="flex items-center gap-2">
<button <button
onClick={() => { onClick={() => {
if (navigator.clipboard) { if (typeof window !== 'undefined' && navigator.clipboard) {
navigator.clipboard.writeText(window.location.href); navigator.clipboard.writeText(window.location.href);
toast.success("لینک مشخصات و دوز دارویی محصول کپی شد"); toast.success("لینک مشخصات و دوز دارویی محصول کپی شد");
} }

View File

@ -1,9 +1,13 @@
import { useState, useEffect } from 'react'; import { useState, useEffect } from 'react';
export function useNetworkStatus() { export function useNetworkStatus() {
const [isOnline, setIsOnline] = useState(navigator.onLine); const [isOnline, setIsOnline] = useState(true);
useEffect(() => { useEffect(() => {
if (typeof window !== 'undefined' && typeof navigator !== 'undefined') {
setIsOnline(navigator.onLine);
}
const handleOnline = () => setIsOnline(true); const handleOnline = () => setIsOnline(true);
const handleOffline = () => setIsOnline(false); const handleOffline = () => setIsOnline(false);