about summary refs log tree commit diff
path: root/src/components/Dialog/sheet-wrapper.ts
diff options
context:
space:
mode:
authorJaz Volpert <ericvolp12@gmail.com>2024-10-04 14:28:52 -0700
committerJaz Volpert <ericvolp12@gmail.com>2024-10-04 14:28:52 -0700
commit5f3c4c60dbf2232a76ddb591f0eb51359443113a (patch)
treee9308f1e3d3cc75d9ed3abd15d5e5183a5b62ef7 /src/components/Dialog/sheet-wrapper.ts
parent0d99b8b0550084ef55f294b33ef5e12608fd5035 (diff)
parent3fb14d184a84cb892c751338c9aea625f5767a47 (diff)
downloadvoidsky-5f3c4c60dbf2232a76ddb591f0eb51359443113a.tar.zst
Merge branch 'main' into static_asset_cdn
Diffstat (limited to 'src/components/Dialog/sheet-wrapper.ts')
-rw-r--r--src/components/Dialog/sheet-wrapper.ts20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/components/Dialog/sheet-wrapper.ts b/src/components/Dialog/sheet-wrapper.ts
new file mode 100644
index 000000000..37c663383
--- /dev/null
+++ b/src/components/Dialog/sheet-wrapper.ts
@@ -0,0 +1,20 @@
+import {useCallback} from 'react'
+
+import {useDialogStateControlContext} from '#/state/dialogs'
+
+/**
+ * If we're calling a system API like the image picker that opens a sheet
+ * wrap it in this function to make sure the status bar is the correct color.
+ */
+export function useSheetWrapper() {
+  const {setFullyExpandedCount} = useDialogStateControlContext()
+  return useCallback(
+    async <T>(promise: Promise<T>): Promise<T> => {
+      setFullyExpandedCount(c => c + 1)
+      const res = await promise
+      setFullyExpandedCount(c => c - 1)
+      return res
+    },
+    [setFullyExpandedCount],
+  )
+}