diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/components/dialogs/nuxs/TenMillion/index.tsx | 10 | ||||
-rw-r--r-- | src/components/dialogs/nuxs/index.tsx | 19 |
2 files changed, 16 insertions, 13 deletions
diff --git a/src/components/dialogs/nuxs/TenMillion/index.tsx b/src/components/dialogs/nuxs/TenMillion/index.tsx index f5c8435de..c77755145 100644 --- a/src/components/dialogs/nuxs/TenMillion/index.tsx +++ b/src/components/dialogs/nuxs/TenMillion/index.tsx @@ -87,6 +87,7 @@ export function TenMillion() { const agent = useAgent() const nuxDialogs = useNuxDialogContext() const [userNumber, setUserNumber] = React.useState<number>(0) + const fetching = React.useRef(false) React.useEffect(() => { async function fetchUserNumber() { @@ -119,9 +120,12 @@ export function TenMillion() { } } - networkRetry(3, fetchUserNumber).catch(() => { - nuxDialogs.dismissActiveNux() - }) + if (!fetching.current) { + fetching.current = true + networkRetry(3, fetchUserNumber).catch(() => { + nuxDialogs.dismissActiveNux() + }) + } }, [ agent.sessionManager.pdsUrl, agent.session?.accessJwt, diff --git a/src/components/dialogs/nuxs/index.tsx b/src/components/dialogs/nuxs/index.tsx index c02af59fc..f60c9e8d0 100644 --- a/src/components/dialogs/nuxs/index.tsx +++ b/src/components/dialogs/nuxs/index.tsx @@ -49,14 +49,7 @@ function Inner() { const dismissActiveNux = React.useCallback(() => { if (!activeNux) return setActiveNux(undefined) - const nux = nuxs?.find(nux => nux.id === activeNux) - upsertNux({ - id: activeNux, - completed: true, - data: nux?.data, - expiresAt: nux?.expiresAt, - }) - }, [activeNux, setActiveNux, upsertNux, nuxs]) + }, [activeNux, setActiveNux]) if (IS_DEV && typeof window !== 'undefined') { // @ts-ignore @@ -77,12 +70,18 @@ function Inner() { if (nux && nux.completed) continue setActiveNux(id) - // snooze immediately upon enabling + // immediately snooze (in memory) snoozeNuxDialog() + // immediately update remote data + upsertNux({ + id, + completed: true, + data: undefined, + }) break } - }, [nuxs, snoozed, snoozeNuxDialog]) + }, [nuxs, snoozed, snoozeNuxDialog, upsertNux]) const ctx = React.useMemo(() => { return { |