about summary refs log tree commit diff
path: root/src/state/queries
diff options
context:
space:
mode:
authorEric Bailey <git@esb.lol>2024-12-06 09:42:42 -0600
committerGitHub <noreply@github.com>2024-12-06 09:42:42 -0600
commit3ab6c435df5dc3d17fe3e2531231ccf012a4860c (patch)
tree986a565d56127c23952f88c5c32450842feaad7d /src/state/queries
parent143e2c802d1d8d8498e6658c174ed1e657c4ec12 (diff)
downloadvoidsky-3ab6c435df5dc3d17fe3e2531231ccf012a4860c.tar.zst
Trim back prefs exposure in NUXs, make naming more friendly (#6980)
Diffstat (limited to 'src/state/queries')
-rw-r--r--src/state/queries/nuxs/index.ts55
1 files changed, 42 insertions, 13 deletions
diff --git a/src/state/queries/nuxs/index.ts b/src/state/queries/nuxs/index.ts
index e183bcfad..6ad59c7a4 100644
--- a/src/state/queries/nuxs/index.ts
+++ b/src/state/queries/nuxs/index.ts
@@ -10,49 +10,78 @@ import {useAgent} from '#/state/session'
 
 export {Nux} from '#/state/queries/nuxs/definitions'
 
-export function useNuxs() {
-  const {data, ...rest} = usePreferencesQuery()
+export function useNuxs():
+  | {
+      nuxs: AppNux[]
+      status: 'ready'
+    }
+  | {
+      nuxs: undefined
+      status: 'loading' | 'error'
+    } {
+  const {data, isSuccess, isError} = usePreferencesQuery()
+  const status = isSuccess ? 'ready' : isError ? 'error' : 'loading'
 
-  if (data && rest.isSuccess) {
-    const nuxs = data.bskyAppState.nuxs
+  if (status === 'ready') {
+    const nuxs = data?.bskyAppState?.nuxs
       ?.map(parseAppNux)
       ?.filter(Boolean) as AppNux[]
 
     if (nuxs) {
       return {
         nuxs,
-        ...rest,
+        status,
+      }
+    } else {
+      return {
+        nuxs: [],
+        status,
       }
     }
   }
 
   return {
     nuxs: undefined,
-    ...rest,
+    status,
   }
 }
 
-export function useNux<T extends Nux>(id: T) {
-  const {nuxs, ...rest} = useNuxs()
+export function useNux<T extends Nux>(
+  id: T,
+):
+  | {
+      nux: Extract<AppNux, {id: T}> | undefined
+      status: 'ready'
+    }
+  | {
+      nux: undefined
+      status: 'loading' | 'error'
+    } {
+  const {nuxs, status} = useNuxs()
 
-  if (nuxs && rest.isSuccess) {
+  if (status === 'ready') {
     const nux = nuxs.find(nux => nux.id === id)
 
     if (nux) {
       return {
         nux: nux as Extract<AppNux, {id: T}>,
-        ...rest,
+        status,
+      }
+    } else {
+      return {
+        nux: undefined,
+        status,
       }
     }
   }
 
   return {
     nux: undefined,
-    ...rest,
+    status,
   }
 }
 
-export function useUpsertNuxMutation() {
+export function useSaveNux() {
   const queryClient = useQueryClient()
   const agent = useAgent()
 
@@ -68,7 +97,7 @@ export function useUpsertNuxMutation() {
   })
 }
 
-export function useRemoveNuxsMutation() {
+export function useResetNuxs() {
   const queryClient = useQueryClient()
   const agent = useAgent()