From f978d9bff5f5b51056221d86ea78d6db5e3adf3c Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Tue, 5 Aug 2025 14:48:53 -0500 Subject: [PATCH] Add logger --- src/components/PolicyUpdateOverlay/logger.ts | 3 +++ .../PolicyUpdateOverlay/usePolicyUpdateState.ts | 12 +++++++++++- .../usePreemptivelyCompleteActivePolicyUpdate.ts | 16 ++++++++-------- src/logger/types.ts | 1 + 4 files changed, 23 insertions(+), 9 deletions(-) create mode 100644 src/components/PolicyUpdateOverlay/logger.ts diff --git a/src/components/PolicyUpdateOverlay/logger.ts b/src/components/PolicyUpdateOverlay/logger.ts new file mode 100644 index 0000000000..cd66c17098 --- /dev/null +++ b/src/components/PolicyUpdateOverlay/logger.ts @@ -0,0 +1,3 @@ +import {Logger} from '#/logger' + +export const logger = Logger.create(Logger.Context.PolicyUpdate) diff --git a/src/components/PolicyUpdateOverlay/usePolicyUpdateState.ts b/src/components/PolicyUpdateOverlay/usePolicyUpdateState.ts index 636f408c7d..29d8afe067 100644 --- a/src/components/PolicyUpdateOverlay/usePolicyUpdateState.ts +++ b/src/components/PolicyUpdateOverlay/usePolicyUpdateState.ts @@ -2,6 +2,7 @@ import {useMemo} from 'react' import {useNux, useSaveNux} from '#/state/queries/nuxs' import {ACTIVE_UPDATE_ID} from '#/components/PolicyUpdateOverlay/config' +import {logger} from '#/components/PolicyUpdateOverlay/logger' import {IS_DEV} from '#/env' import {device, useStorage} from '#/storage' @@ -15,7 +16,7 @@ export function usePolicyUpdateState() { const {mutate: save, variables} = useSaveNux() const deviceStorage = useStorage(device, [ACTIVE_UPDATE_ID]) const debugOverride = - useStorage(device, ['policyUpdateDebugOverride']) && IS_DEV + !!useStorage(device, ['policyUpdateDebugOverride'])[0] && IS_DEV return useMemo(() => { const nuxIsReady = nux.status === 'ready' const nuxIsCompleted = nux.nux?.completed === true @@ -29,6 +30,12 @@ export function usePolicyUpdateState() { completedForDevice, }) + logger.debug(`state`, { + completed, + nux, + completedForDevice, + }) + if (!debugOverride) { syncCompletedState({ nuxIsReady, @@ -43,6 +50,7 @@ export function usePolicyUpdateState() { return { completed, complete() { + logger.debug(`user completed`) save({ id: ACTIVE_UPDATE_ID, completed: true, @@ -111,12 +119,14 @@ export function syncCompletedState({ !nuxIsOptimisticallyCompleted && !!completedForDevice ) { + logger.debug(`syncing device state to server state`) save({ id: ACTIVE_UPDATE_ID, completed: true, data: undefined, }) } else if (nuxIsReady && nuxIsCompleted && !completedForDevice) { + logger.debug(`syncing server state to device state`) /* * Sync server state to device state */ diff --git a/src/components/PolicyUpdateOverlay/usePreemptivelyCompleteActivePolicyUpdate.ts b/src/components/PolicyUpdateOverlay/usePreemptivelyCompleteActivePolicyUpdate.ts index f466b9b8f3..f41b3e6d7d 100644 --- a/src/components/PolicyUpdateOverlay/usePreemptivelyCompleteActivePolicyUpdate.ts +++ b/src/components/PolicyUpdateOverlay/usePreemptivelyCompleteActivePolicyUpdate.ts @@ -1,21 +1,21 @@ import {useCallback} from 'react' -import {useSaveNux} from '#/state/queries/nuxs' import {ACTIVE_UPDATE_ID} from '#/components/PolicyUpdateOverlay/config' +import {logger} from '#/components/PolicyUpdateOverlay/logger' import {device, useStorage} from '#/storage' +/* + * Marks the active policy update as completed in device storage. + * `usePolicyUpdateState` will react to this and replicate this status in the + * server NUX state for this account. + */ export function usePreemptivelyCompleteActivePolicyUpdate() { - const {mutate: save} = useSaveNux() const [_completedForDevice, setCompletedForDevice] = useStorage(device, [ ACTIVE_UPDATE_ID, ]) return useCallback(() => { - save({ - id: ACTIVE_UPDATE_ID, - completed: true, - data: undefined, - }) + logger.debug(`preemptively completing active policy update`) setCompletedForDevice(true) - }, [save, setCompletedForDevice]) + }, [setCompletedForDevice]) } diff --git a/src/logger/types.ts b/src/logger/types.ts index 4743e866c4..ee3069a083 100644 --- a/src/logger/types.ts +++ b/src/logger/types.ts @@ -13,6 +13,7 @@ export enum LogContext { FeedFeedback = 'feed-feedback', PostSource = 'post-source', AgeAssurance = 'age-assurance', + PolicyUpdate = 'policy-update', /** * METRIC IS FOR INTERNAL USE ONLY, don't create any other loggers using this