Add logger

This commit is contained in:
Eric Bailey
2025-08-05 14:48:53 -05:00
parent 8dd4a73b78
commit f978d9bff5
4 changed files with 23 additions and 9 deletions
@@ -0,0 +1,3 @@
import {Logger} from '#/logger'
export const logger = Logger.create(Logger.Context.PolicyUpdate)
@@ -2,6 +2,7 @@ import {useMemo} from 'react'
import {useNux, useSaveNux} from '#/state/queries/nuxs' import {useNux, useSaveNux} from '#/state/queries/nuxs'
import {ACTIVE_UPDATE_ID} from '#/components/PolicyUpdateOverlay/config' import {ACTIVE_UPDATE_ID} from '#/components/PolicyUpdateOverlay/config'
import {logger} from '#/components/PolicyUpdateOverlay/logger'
import {IS_DEV} from '#/env' import {IS_DEV} from '#/env'
import {device, useStorage} from '#/storage' import {device, useStorage} from '#/storage'
@@ -15,7 +16,7 @@ export function usePolicyUpdateState() {
const {mutate: save, variables} = useSaveNux() const {mutate: save, variables} = useSaveNux()
const deviceStorage = useStorage(device, [ACTIVE_UPDATE_ID]) const deviceStorage = useStorage(device, [ACTIVE_UPDATE_ID])
const debugOverride = const debugOverride =
useStorage(device, ['policyUpdateDebugOverride']) && IS_DEV !!useStorage(device, ['policyUpdateDebugOverride'])[0] && IS_DEV
return useMemo(() => { return useMemo(() => {
const nuxIsReady = nux.status === 'ready' const nuxIsReady = nux.status === 'ready'
const nuxIsCompleted = nux.nux?.completed === true const nuxIsCompleted = nux.nux?.completed === true
@@ -29,6 +30,12 @@ export function usePolicyUpdateState() {
completedForDevice, completedForDevice,
}) })
logger.debug(`state`, {
completed,
nux,
completedForDevice,
})
if (!debugOverride) { if (!debugOverride) {
syncCompletedState({ syncCompletedState({
nuxIsReady, nuxIsReady,
@@ -43,6 +50,7 @@ export function usePolicyUpdateState() {
return { return {
completed, completed,
complete() { complete() {
logger.debug(`user completed`)
save({ save({
id: ACTIVE_UPDATE_ID, id: ACTIVE_UPDATE_ID,
completed: true, completed: true,
@@ -111,12 +119,14 @@ export function syncCompletedState({
!nuxIsOptimisticallyCompleted && !nuxIsOptimisticallyCompleted &&
!!completedForDevice !!completedForDevice
) { ) {
logger.debug(`syncing device state to server state`)
save({ save({
id: ACTIVE_UPDATE_ID, id: ACTIVE_UPDATE_ID,
completed: true, completed: true,
data: undefined, data: undefined,
}) })
} else if (nuxIsReady && nuxIsCompleted && !completedForDevice) { } else if (nuxIsReady && nuxIsCompleted && !completedForDevice) {
logger.debug(`syncing server state to device state`)
/* /*
* Sync server state to device state * Sync server state to device state
*/ */
@@ -1,21 +1,21 @@
import {useCallback} from 'react' import {useCallback} from 'react'
import {useSaveNux} from '#/state/queries/nuxs'
import {ACTIVE_UPDATE_ID} from '#/components/PolicyUpdateOverlay/config' import {ACTIVE_UPDATE_ID} from '#/components/PolicyUpdateOverlay/config'
import {logger} from '#/components/PolicyUpdateOverlay/logger'
import {device, useStorage} from '#/storage' 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() { export function usePreemptivelyCompleteActivePolicyUpdate() {
const {mutate: save} = useSaveNux()
const [_completedForDevice, setCompletedForDevice] = useStorage(device, [ const [_completedForDevice, setCompletedForDevice] = useStorage(device, [
ACTIVE_UPDATE_ID, ACTIVE_UPDATE_ID,
]) ])
return useCallback(() => { return useCallback(() => {
save({ logger.debug(`preemptively completing active policy update`)
id: ACTIVE_UPDATE_ID,
completed: true,
data: undefined,
})
setCompletedForDevice(true) setCompletedForDevice(true)
}, [save, setCompletedForDevice]) }, [setCompletedForDevice])
} }
+1
View File
@@ -13,6 +13,7 @@ export enum LogContext {
FeedFeedback = 'feed-feedback', FeedFeedback = 'feed-feedback',
PostSource = 'post-source', PostSource = 'post-source',
AgeAssurance = 'age-assurance', AgeAssurance = 'age-assurance',
PolicyUpdate = 'policy-update',
/** /**
* METRIC IS FOR INTERNAL USE ONLY, don't create any other loggers using this * METRIC IS FOR INTERNAL USE ONLY, don't create any other loggers using this