Add debug code

This commit is contained in:
Eric Bailey
2025-08-05 12:32:03 -05:00
parent c1b6ae8b6e
commit 0f3ada65ad
3 changed files with 58 additions and 9 deletions
@@ -2,6 +2,7 @@ import {useMemo} from 'react'
import {useNux, useSaveNux} from '#/state/queries/nuxs'
import {ACTIVE_ANNOUNCEMENT} from '#/components/dialogs/BlockingAnnouncements/config'
import {IS_DEV} from '#/env'
import {device, useStorage} from '#/storage'
export type AnnouncementState = {
@@ -13,6 +14,8 @@ export function useAnnouncementState() {
const nux = useNux(ACTIVE_ANNOUNCEMENT)
const {mutate: save, variables} = useSaveNux()
const deviceStorage = useStorage(device, [ACTIVE_ANNOUNCEMENT])
const devOnlyOverride =
useStorage(device, ['blockingAnnouncementOverride']) && IS_DEV
return useMemo(() => {
const nuxIsReady = nux.status === 'ready'
const nuxIsCompleted = nux.nux?.completed === true
@@ -26,14 +29,16 @@ export function useAnnouncementState() {
completedForDevice,
})
syncCompletedState({
nuxIsReady,
nuxIsCompleted,
nuxIsOptimisticallyCompleted,
completedForDevice,
save,
setCompletedForDevice,
})
if (!devOnlyOverride) {
syncCompletedState({
nuxIsReady,
nuxIsCompleted,
nuxIsOptimisticallyCompleted,
completedForDevice,
save,
setCompletedForDevice,
})
}
return {
completed,
@@ -45,7 +50,7 @@ export function useAnnouncementState() {
})
},
}
}, [nux, save, variables, deviceStorage])
}, [nux, save, variables, deviceStorage, devOnlyOverride])
}
export function computeCompletedState({
+43
View File
@@ -12,6 +12,8 @@ import {Statsig} from 'statsig-react-native-expo'
import {STATUS_PAGE_URL} from '#/lib/constants'
import {type CommonNavigatorParams} from '#/lib/routes/types'
import {isAndroid, isIOS, isNative} from '#/platform/detection'
import {Nux} from '#/state/queries/nuxs'
import {useAgent} from '#/state/session'
import * as Toast from '#/view/com/util/Toast'
import * as SettingsList from '#/screens/Settings/components/SettingsList'
import {Atom_Stroke2_Corner0_Rounded as AtomIcon} from '#/components/icons/Atom'
@@ -23,6 +25,7 @@ import {Wrench_Stroke2_Corner2_Rounded as WrenchIcon} from '#/components/icons/W
import * as Layout from '#/components/Layout'
import {Loader} from '#/components/Loader'
import * as env from '#/env'
import {device, useStorage} from '#/storage'
import {useDemoMode} from '#/storage/hooks/demo-mode'
import {useDevMode} from '#/storage/hooks/dev-mode'
import {OTAInfo} from './components/OTAInfo'
@@ -179,6 +182,8 @@ export function AboutSettingsScreen({}: Props) {
</SettingsList.ItemText>
</SettingsList.PressableItem>
)}
<PolicyUpdateDebug />
</>
)}
</SettingsList.Container>
@@ -186,3 +191,41 @@ export function AboutSettingsScreen({}: Props) {
</Layout.Screen>
)
}
function PolicyUpdateDebug() {
const agent = useAgent()
const [override, setOverride] = useStorage(device, [
'blockingAnnouncementOverride',
])
return (
<>
<SettingsList.PressableItem
onPress={() => {
setOverride(!override)
}}
label="Toggle">
<SettingsList.ItemIcon icon={AtomIcon} />
<SettingsList.ItemText>
Enable policy update override
</SettingsList.ItemText>
</SettingsList.PressableItem>
{override && (
<SettingsList.PressableItem
onPress={() => {
device.set([Nux.BlockingAnnouncementPolicyUpdate202508], false)
agent.bskyAppRemoveNuxs([
Nux.BlockingAnnouncementPolicyUpdate202508,
])
}}
label="Reset policy update nux">
<SettingsList.ItemIcon icon={AtomIcon} />
<SettingsList.ItemText>
Reset policy update state
</SettingsList.ItemText>
</SettingsList.PressableItem>
)}
</>
)
}
+1
View File
@@ -19,6 +19,7 @@ export type Device = {
/**
* Blocking announcements. New IDs are required for each new announcement.
*/
blockingAnnouncementOverride?: boolean
[Nux.BlockingAnnouncementPolicyUpdate202508]?: boolean
}