diff --git a/eslint-suppressions.json b/eslint-suppressions.json
index acbd6f39cf..aa42e92b5b 100644
--- a/eslint-suppressions.json
+++ b/eslint-suppressions.json
@@ -688,11 +688,6 @@
"count": 1
}
},
- "src/view/screens/DebugMod.tsx": {
- "@typescript-eslint/no-explicit-any": {
- "count": 1
- }
- },
"src/view/shell/createNativeStackNavigatorWithAuth.tsx": {
"@typescript-eslint/no-explicit-any": {
"count": 1
diff --git a/src/view/screens/DebugMod.tsx b/src/view/screens/DebugMod.tsx
index c409dc7bc1..c3fe8fba8e 100644
--- a/src/view/screens/DebugMod.tsx
+++ b/src/view/screens/DebugMod.tsx
@@ -1,5 +1,6 @@
import {useMemo, useState} from 'react'
import {View} from 'react-native'
+import {useSharedValue} from 'react-native-reanimated'
import {
type AppBskyActorDefs,
type AppBskyFeedDefs,
@@ -54,6 +55,7 @@ import * as ProfileCard from '#/components/ProfileCard'
import {H1, H3, P, Text} from '#/components/Typography'
import {ScreenHider} from '../../components/moderation/ScreenHider'
import {NotificationFeedItem} from '../com/notifications/NotificationFeedItem'
+import {PagerHeaderProvider} from '../com/pager/PagerHeaderContext'
import {PostFeedItem} from '../com/posts/PostFeedItem'
const LABEL_VALUES: (keyof typeof LABELS)[] = Object.keys(
@@ -272,325 +274,341 @@ export const DebugModScreen = ({}: NativeStackScreenProps<
return moderatePost(post, modOpts)
}, [post, modOpts])
+ const sv = useSharedValue(0)
+
return (
-
-
-
-
- Moderation states
-
+
+
+
+
+
+ Moderation states
+
-
-
-
- Label
-
-
- Block
-
-
- Mute
-
-
+
+
+
+ Label
+
+
+ Block
+
+
+ Mute
+
+
- {scenario[0] === 'label' && (
- <>
-
-
-
- {LABEL_VALUES.map(labelValue => {
- let targetFixed = target[0]
- if (
- targetFixed !== 'account' &&
- targetFixed !== 'profile'
- ) {
- targetFixed = 'content'
- }
- const disabled =
- isSelfLabel &&
- LABELS[labelValue].flags.includes('no-self')
- return (
-
-
- {labelValue}
-
- )
- })}
-
-
- Custom label
-
-
-
-
- {label[0] === 'custom' ? (
-
- ) : (
- <>
-
-
- >
- )}
-
-
-
-
+ {scenario[0] === 'label' && (
+ <>
+
-
-
-
- Target is me
-
-
-
- Following target
-
-
-
- Self label
-
-
-
- Adult disabled
-
-
-
- Signed out
+ type="radio"
+ values={label}
+ onChange={setLabel}>
+
+ {LABEL_VALUES.map(labelValue => {
+ let targetFixed = target[0]
+ if (
+ targetFixed !== 'account' &&
+ targetFixed !== 'profile'
+ ) {
+ targetFixed = 'content'
+ }
+ const disabled =
+ isSelfLabel &&
+ LABELS[labelValue].flags.includes('no-self')
+ return (
+
+
+ {labelValue}
+
+ )
+ })}
+
+
+ Custom label
- {LABELS[label[0] as keyof typeof LABELS]?.configurable !==
- false && (
-
-
- Preference
-
-
-
+ ) : (
+ <>
+
+
+ >
+ )}
+
+
+
+
+
+
+
+
+ Target is me
+
+
+
+
+ Following target
+
+
+
+
+ Self label
+
+
+
+ Adult disabled
+
+
+
+ Signed out
+
+
+
+
+ {LABELS[label[0] as keyof typeof LABELS]?.configurable !==
+ false && (
+
+
-
+ Preference
+
+
+
+
+
+ Hide
+
+
+
+ Warn
+
+
+
+ Ignore
+
+
+
+
+ )}
+
+
+
+
+
+
+ Target
+
+
+
+
+
- Hide
+ Account
-
+
- Warn
+ Profile
-
+
- Ignore
+ Post
+
+
+
+ Embed
- )}
-
-
-
-
-
-
- Target
-
-
-
-
-
-
- Account
-
-
-
- Profile
-
-
-
- Post
-
-
-
- Embed
-
-
-
-
- >
- )}
-
-
-
-
-
-
-
- Post
-
-
- Notifications
-
-
- Account
-
-
- Data
-
-
-
-
- {view[0] === 'post' && (
- <>
-
-
-
-
-
-
-
-
>
)}
- {view[0] === 'notifications' && (
- <>
-
-
-
-
-
- >
- )}
+
- {view[0] === 'account' && (
- <>
-
-
+
-
-
- >
- )}
+
+
+ Post
+
+
+
+ Notifications
+
+
+
+ Account
+
+
+ Data
+
+
- {view[0] === 'data' && (
- <>
-
-
-
-
-
- >
- )}
-
+
+ {view[0] === 'post' && (
+ <>
+
+
-
-
-
-
+
+
+
+
+
+ >
+ )}
+
+ {view[0] === 'notifications' && (
+ <>
+
+
+
+
+
+ >
+ )}
+
+ {view[0] === 'account' && (
+ <>
+
+
+
+
+
+ >
+ )}
+
+ {view[0] === 'data' && (
+ <>
+
+
+
+
+
+ >
+ )}
+
+
+
+
+
+
+
)
}
@@ -760,7 +778,7 @@ function SmallToggler({
)
}
-function DataView({label, data}: {label: string; data: any}) {
+function DataView({label, data}: {label: string; data: unknown}) {
return (