From c99e43d6c625ed7d0bb4f1d25026512460445bef Mon Sep 17 00:00:00 2001
From: Eric Bailey <git@esb.lol>
Date: Wed, 11 Sep 2024 21:56:20 -0500
Subject: Protect against other exit methods, protect against multiple fetches

---
 src/components/dialogs/nuxs/index.tsx | 19 +++++++++----------
 1 file changed, 9 insertions(+), 10 deletions(-)

(limited to 'src/components/dialogs/nuxs/index.tsx')

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 {
-- 
cgit 1.4.1

