about summary refs log tree commit diff
path: root/src/components/PolicyUpdateOverlay/usePolicyUpdateState.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/PolicyUpdateOverlay/usePolicyUpdateState.ts')
-rw-r--r--src/components/PolicyUpdateOverlay/usePolicyUpdateState.ts24
1 files changed, 22 insertions, 2 deletions
diff --git a/src/components/PolicyUpdateOverlay/usePolicyUpdateState.ts b/src/components/PolicyUpdateOverlay/usePolicyUpdateState.ts
index 29d8afe06..32b948af9 100644
--- a/src/components/PolicyUpdateOverlay/usePolicyUpdateState.ts
+++ b/src/components/PolicyUpdateOverlay/usePolicyUpdateState.ts
@@ -11,13 +11,33 @@ export type PolicyUpdateState = {
   complete: () => void
 }
 
-export function usePolicyUpdateState() {
+export function usePolicyUpdateState({
+  enabled,
+}: {
+  /**
+   * Used to skip the policy update overlay until we're actually ready to
+   * show it.
+   */
+  enabled: boolean
+}) {
   const nux = useNux(ACTIVE_UPDATE_ID)
   const {mutate: save, variables} = useSaveNux()
   const deviceStorage = useStorage(device, [ACTIVE_UPDATE_ID])
   const debugOverride =
     !!useStorage(device, ['policyUpdateDebugOverride'])[0] && IS_DEV
+
   return useMemo(() => {
+    /**
+     * If not enabled, then just return a completed state so the app functions
+     * as normal.
+     */
+    if (!enabled) {
+      return {
+        completed: true,
+        complete() {},
+      }
+    }
+
     const nuxIsReady = nux.status === 'ready'
     const nuxIsCompleted = nux.nux?.completed === true
     const nuxIsOptimisticallyCompleted = !!variables?.completed
@@ -59,7 +79,7 @@ export function usePolicyUpdateState() {
         setCompletedForDevice(true)
       },
     }
-  }, [nux, save, variables, deviceStorage, debugOverride])
+  }, [enabled, nux, save, variables, deviceStorage, debugOverride])
 }
 
 export function computeCompletedState({