mirror of
https://github.com/dergigi/boris.git
synced 2025-12-17 14:44:26 +01:00
fix(article): prevent re-fetch on settings change by memoizing via ref in useArticleLoader
This commit is contained in:
@@ -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,
|
||||||
|
|||||||
Reference in New Issue
Block a user