fix(article): prevent re-fetch on settings change by memoizing via ref in useArticleLoader

This commit is contained in:
Gigi
2025-10-22 13:38:24 +02:00
parent df485b883d
commit 7551a05aee

View File

@@ -37,6 +37,11 @@ export function useArticleLoader({
settings settings
}: UseArticleLoaderProps) { }: UseArticleLoaderProps) {
const mountedRef = useRef(true) const mountedRef = useRef(true)
// Hold latest settings without retriggering effect
const settingsRef = useRef<UserSettings | undefined>(settings)
useEffect(() => {
settingsRef.current = settings
}, [settings])
useEffect(() => { useEffect(() => {
mountedRef.current = true mountedRef.current = true
@@ -52,7 +57,7 @@ export function useArticleLoader({
setIsCollapsed(true) setIsCollapsed(true)
try { try {
const article = await fetchArticleByNaddr(relayPool, naddr, false, settings) const article = await fetchArticleByNaddr(relayPool, naddr, false, settingsRef.current)
if (!mountedRef.current) return if (!mountedRef.current) return
@@ -123,7 +128,6 @@ export function useArticleLoader({
}, [ }, [
naddr, naddr,
relayPool, relayPool,
settings,
setSelectedUrl, setSelectedUrl,
setReaderContent, setReaderContent,
setReaderLoading, setReaderLoading,