about summary refs log tree commit diff
path: root/src/lib/hooks/useDedupe.ts
diff options
context:
space:
mode:
authorHailey <me@haileyok.com>2024-03-12 09:46:25 -0700
committerGitHub <noreply@github.com>2024-03-12 09:46:25 -0700
commitee57d74765e644de49c02de1e817eee0c6ed81aa (patch)
tree06945ebe5e8f856981cbfb25c81bdfcee807e43b /src/lib/hooks/useDedupe.ts
parentb8afb935f4eafbe64e83512ec5a97bb7b38a6ecb (diff)
downloadvoidsky-ee57d74765e644de49c02de1e817eee0c6ed81aa.tar.zst
Dedupe navigation events (push, navigate, pop, etc) (#3179)
Diffstat (limited to 'src/lib/hooks/useDedupe.ts')
-rw-r--r--src/lib/hooks/useDedupe.ts17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/lib/hooks/useDedupe.ts b/src/lib/hooks/useDedupe.ts
new file mode 100644
index 000000000..d9432cb2c
--- /dev/null
+++ b/src/lib/hooks/useDedupe.ts
@@ -0,0 +1,17 @@
+import React from 'react'
+
+export const useDedupe = () => {
+  const canDo = React.useRef(true)
+
+  return React.useRef((cb: () => unknown) => {
+    if (canDo.current) {
+      canDo.current = false
+      setTimeout(() => {
+        canDo.current = true
+      }, 250)
+      cb()
+      return true
+    }
+    return false
+  }).current
+}