Add debug code
This commit is contained in:
@@ -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({
|
||||
|
||||
@@ -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>
|
||||
)}
|
||||
</>
|
||||
)
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ export type Device = {
|
||||
/**
|
||||
* Blocking announcements. New IDs are required for each new announcement.
|
||||
*/
|
||||
blockingAnnouncementOverride?: boolean
|
||||
[Nux.BlockingAnnouncementPolicyUpdate202508]?: boolean
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user