Add debug code
This commit is contained in:
@@ -2,6 +2,7 @@ import {useMemo} from 'react'
|
|||||||
|
|
||||||
import {useNux, useSaveNux} from '#/state/queries/nuxs'
|
import {useNux, useSaveNux} from '#/state/queries/nuxs'
|
||||||
import {ACTIVE_ANNOUNCEMENT} from '#/components/dialogs/BlockingAnnouncements/config'
|
import {ACTIVE_ANNOUNCEMENT} from '#/components/dialogs/BlockingAnnouncements/config'
|
||||||
|
import {IS_DEV} from '#/env'
|
||||||
import {device, useStorage} from '#/storage'
|
import {device, useStorage} from '#/storage'
|
||||||
|
|
||||||
export type AnnouncementState = {
|
export type AnnouncementState = {
|
||||||
@@ -13,6 +14,8 @@ export function useAnnouncementState() {
|
|||||||
const nux = useNux(ACTIVE_ANNOUNCEMENT)
|
const nux = useNux(ACTIVE_ANNOUNCEMENT)
|
||||||
const {mutate: save, variables} = useSaveNux()
|
const {mutate: save, variables} = useSaveNux()
|
||||||
const deviceStorage = useStorage(device, [ACTIVE_ANNOUNCEMENT])
|
const deviceStorage = useStorage(device, [ACTIVE_ANNOUNCEMENT])
|
||||||
|
const devOnlyOverride =
|
||||||
|
useStorage(device, ['blockingAnnouncementOverride']) && 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
|
||||||
@@ -26,6 +29,7 @@ export function useAnnouncementState() {
|
|||||||
completedForDevice,
|
completedForDevice,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
if (!devOnlyOverride) {
|
||||||
syncCompletedState({
|
syncCompletedState({
|
||||||
nuxIsReady,
|
nuxIsReady,
|
||||||
nuxIsCompleted,
|
nuxIsCompleted,
|
||||||
@@ -34,6 +38,7 @@ export function useAnnouncementState() {
|
|||||||
save,
|
save,
|
||||||
setCompletedForDevice,
|
setCompletedForDevice,
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
completed,
|
completed,
|
||||||
@@ -45,7 +50,7 @@ export function useAnnouncementState() {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}, [nux, save, variables, deviceStorage])
|
}, [nux, save, variables, deviceStorage, devOnlyOverride])
|
||||||
}
|
}
|
||||||
|
|
||||||
export function computeCompletedState({
|
export function computeCompletedState({
|
||||||
|
|||||||
@@ -12,6 +12,8 @@ import {Statsig} from 'statsig-react-native-expo'
|
|||||||
import {STATUS_PAGE_URL} from '#/lib/constants'
|
import {STATUS_PAGE_URL} from '#/lib/constants'
|
||||||
import {type CommonNavigatorParams} from '#/lib/routes/types'
|
import {type CommonNavigatorParams} from '#/lib/routes/types'
|
||||||
import {isAndroid, isIOS, isNative} from '#/platform/detection'
|
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 Toast from '#/view/com/util/Toast'
|
||||||
import * as SettingsList from '#/screens/Settings/components/SettingsList'
|
import * as SettingsList from '#/screens/Settings/components/SettingsList'
|
||||||
import {Atom_Stroke2_Corner0_Rounded as AtomIcon} from '#/components/icons/Atom'
|
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 * as Layout from '#/components/Layout'
|
||||||
import {Loader} from '#/components/Loader'
|
import {Loader} from '#/components/Loader'
|
||||||
import * as env from '#/env'
|
import * as env from '#/env'
|
||||||
|
import {device, useStorage} from '#/storage'
|
||||||
import {useDemoMode} from '#/storage/hooks/demo-mode'
|
import {useDemoMode} from '#/storage/hooks/demo-mode'
|
||||||
import {useDevMode} from '#/storage/hooks/dev-mode'
|
import {useDevMode} from '#/storage/hooks/dev-mode'
|
||||||
import {OTAInfo} from './components/OTAInfo'
|
import {OTAInfo} from './components/OTAInfo'
|
||||||
@@ -179,6 +182,8 @@ export function AboutSettingsScreen({}: Props) {
|
|||||||
</SettingsList.ItemText>
|
</SettingsList.ItemText>
|
||||||
</SettingsList.PressableItem>
|
</SettingsList.PressableItem>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
|
<PolicyUpdateDebug />
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
</SettingsList.Container>
|
</SettingsList.Container>
|
||||||
@@ -186,3 +191,41 @@ export function AboutSettingsScreen({}: Props) {
|
|||||||
</Layout.Screen>
|
</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.
|
* Blocking announcements. New IDs are required for each new announcement.
|
||||||
*/
|
*/
|
||||||
|
blockingAnnouncementOverride?: boolean
|
||||||
[Nux.BlockingAnnouncementPolicyUpdate202508]?: boolean
|
[Nux.BlockingAnnouncementPolicyUpdate202508]?: boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user