fa70168622
- /alisveris, /alisveris/:id ve /alisveris/:id/mod sayfaları; odak ve 30 sn yenileme - stok önerileri paneli, kalem ekle/düzenle/taşı, mağazaya gruplu kontrol listesi - dashboard Alışveriş kartı, kenar menü, ürün tipi formunda hacimli işareti Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
26 lines
878 B
TypeScript
26 lines
878 B
TypeScript
"use client";
|
||
|
||
import { useRouter } from "next/navigation";
|
||
import { useEffect } from "react";
|
||
|
||
/**
|
||
* Paylaşılan veriler için hafif senkron: sayfa yeniden odaklanınca ve belirli aralıkla sunucu
|
||
* bileşenlerini yeniler (aile üyeleri aynı listeyi kullanır). Sekme gizliyken yenilemez.
|
||
*/
|
||
export function useAutoRefresh(intervalMs: number) {
|
||
const router = useRouter();
|
||
useEffect(() => {
|
||
const refresh = () => {
|
||
if (document.visibilityState === "visible") router.refresh();
|
||
};
|
||
const timer = window.setInterval(refresh, intervalMs);
|
||
window.addEventListener("focus", refresh);
|
||
document.addEventListener("visibilitychange", refresh);
|
||
return () => {
|
||
window.clearInterval(timer);
|
||
window.removeEventListener("focus", refresh);
|
||
document.removeEventListener("visibilitychange", refresh);
|
||
};
|
||
}, [router, intervalMs]);
|
||
}
|