diff --git a/src/components/dialogs/BlockingAnnouncements/announcements/PolicyUpdate202508/config.ts b/src/components/dialogs/BlockingAnnouncements/announcements/PolicyUpdate202508/config.ts
new file mode 100644
index 0000000000..1c230fd24d
--- /dev/null
+++ b/src/components/dialogs/BlockingAnnouncements/announcements/PolicyUpdate202508/config.ts
@@ -0,0 +1,7 @@
+/*
+ * Keep this file separate to avoid import issues.
+ */
+
+import {Nux} from '#/state/queries/nuxs'
+
+export const ID = Nux.BlockingAnnouncementPolicyUpdate202508
diff --git a/src/components/dialogs/BlockingAnnouncements/announcements/PolicyUpdate202508.tsx b/src/components/dialogs/BlockingAnnouncements/announcements/PolicyUpdate202508/index.tsx
similarity index 96%
rename from src/components/dialogs/BlockingAnnouncements/announcements/PolicyUpdate202508.tsx
rename to src/components/dialogs/BlockingAnnouncements/announcements/PolicyUpdate202508/index.tsx
index 27b1f57989..5a7ca13f62 100644
--- a/src/components/dialogs/BlockingAnnouncements/announcements/PolicyUpdate202508.tsx
+++ b/src/components/dialogs/BlockingAnnouncements/announcements/PolicyUpdate202508/index.tsx
@@ -25,33 +25,33 @@ export function Announcement({state}: {state: AnnouncementState}) {
const linkStyle = [a.text_md]
const links = {
terms: {
- overridePresentation: true,
+ overridePresentation: false,
to: `https://bsky.social/about/support`,
label: _(msg`Terms of Service`),
},
privacy: {
- overridePresentation: true,
+ overridePresentation: false,
to: `https://bsky.social/about/support`,
label: _(msg`Privacy Policy`),
},
copyright: {
- overridePresentation: true,
+ overridePresentation: false,
to: `https://bsky.social/about/support`,
label: _(msg`Copyright Policy`),
},
guidelines: {
- overridePresentation: true,
+ overridePresentation: false,
to: `https://bsky.social/about/support`,
label: _(msg`Community Guidelines`),
},
blog: {
- overridePresentation: true,
+ overridePresentation: false,
to: `https://bsky.social/about/support`,
label: _(msg`Our blog post`),
},
}
const linkButtonStyles = {
- overridePresentation: true,
+ overridePresentation: false,
color: 'secondary',
size: 'small',
} as const
diff --git a/src/components/dialogs/BlockingAnnouncements/config.ts b/src/components/dialogs/BlockingAnnouncements/config.ts
index 9d154c9e98..8f58b5c3a0 100644
--- a/src/components/dialogs/BlockingAnnouncements/config.ts
+++ b/src/components/dialogs/BlockingAnnouncements/config.ts
@@ -1,3 +1,7 @@
-import {Nux} from '#/state/queries/nuxs'
+import {ID} from '#/components/dialogs/BlockingAnnouncements/announcements/PolicyUpdate202508/config'
-export const ACTIVE_ANNOUNCEMENT = Nux.BlockingAnnouncementPolicyUpdate202508
+/**
+ * The singulary active announcement ID. This is configured here to ensure that
+ * the relationship is clear.
+ */
+export const ACTIVE_ANNOUNCEMENT = ID
diff --git a/src/screens/Settings/AboutSettings.tsx b/src/screens/Settings/AboutSettings.tsx
index 66506a579c..4bba812c0c 100644
--- a/src/screens/Settings/AboutSettings.tsx
+++ b/src/screens/Settings/AboutSettings.tsx
@@ -1,5 +1,5 @@
import {useMemo} from 'react'
-import {Platform} from 'react-native'
+import {Platform, View} from 'react-native'
import {setStringAsync} from 'expo-clipboard'
import * as FileSystem from 'expo-file-system'
import {Image} from 'expo-image'
@@ -12,10 +12,12 @@ 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 {atoms as a} from '#/alf'
+import {Button, ButtonText} from '#/components/Button'
+import {ID as PolicyUpdate202508} from '#/components/dialogs/BlockingAnnouncements/announcements/PolicyUpdate202508/config'
import {Atom_Stroke2_Corner0_Rounded as AtomIcon} from '#/components/icons/Atom'
import {BroomSparkle_Stroke2_Corner2_Rounded as BroomSparkleIcon} from '#/components/icons/BroomSparkle'
import {CodeLines_Stroke2_Corner2_Rounded as CodeLinesIcon} from '#/components/icons/CodeLines'
@@ -24,6 +26,7 @@ import {Newspaper_Stroke2_Corner2_Rounded as NewspaperIcon} from '#/components/i
import {Wrench_Stroke2_Corner2_Rounded as WrenchIcon} from '#/components/icons/Wrench'
import * as Layout from '#/components/Layout'
import {Loader} from '#/components/Loader'
+import {Text} from '#/components/Typography'
import * as env from '#/env'
import {device, useStorage} from '#/storage'
import {useDemoMode} from '#/storage/hooks/demo-mode'
@@ -200,32 +203,39 @@ function PolicyUpdateDebug() {
return (
<>
- {
- setOverride(!override)
- }}
- label="Toggle">
-
-
- Enable policy update override
-
-
+
+
+ PolicyUpdate202508 Debug
- {override && (
- {
- device.set([Nux.BlockingAnnouncementPolicyUpdate202508], false)
- agent.bskyAppRemoveNuxs([
- Nux.BlockingAnnouncementPolicyUpdate202508,
- ])
- }}
- label="Reset policy update nux">
-
-
- Reset policy update state
-
-
- )}
+
+
+
+
+
+
+
>
)
}
diff --git a/src/storage/schema.ts b/src/storage/schema.ts
index 1ee780c78c..196552a2a3 100644
--- a/src/storage/schema.ts
+++ b/src/storage/schema.ts
@@ -1,4 +1,4 @@
-import {type Nux} from '#/state/queries/nuxs'
+import {type ID as PolicyUpdate202508} from '#/components/dialogs/BlockingAnnouncements/announcements/PolicyUpdate202508/config'
/**
* Device data that's specific to the device and does not vary based account
@@ -20,7 +20,7 @@ export type Device = {
* Blocking announcements. New IDs are required for each new announcement.
*/
blockingAnnouncementOverride?: boolean
- [Nux.BlockingAnnouncementPolicyUpdate202508]?: boolean
+ [PolicyUpdate202508]?: boolean
}
export type Account = {