diff --git a/src/screens/Moderation/index.tsx b/src/screens/Moderation/index.tsx
index 32b7cfb174..d1d2030ef5 100644
--- a/src/screens/Moderation/index.tsx
+++ b/src/screens/Moderation/index.tsx
@@ -5,6 +5,7 @@ import {ComAtprotoLabelDefs, LabelPreference} from '@atproto/api'
import {Trans, msg} from '@lingui/macro'
import {useLingui} from '@lingui/react'
import {LabelGroupDefinition, AppBskyModerationDefs} from '@atproto/api'
+import {useSafeAreaFrame} from 'react-native-safe-area-context'
import {NativeStackScreenProps, CommonNavigatorParams} from '#/lib/routes/types'
import {CenteredView} from '#/view/com/util/Views'
@@ -49,24 +50,78 @@ import {
SettingsDialogProps,
} from '#/screens/Moderation/SettingsDialog'
+function ErrorState({error}: {error: string}) {
+ const t = useTheme()
+ return (
+
+
+
+ Hmmmm, it seems we're having trouble loading this data. See below for
+ more details. If this issue persists, please contact us.
+
+
+
+ {error}
+
+
+ )
+}
+
export function ModerationScreen(
_props: NativeStackScreenProps,
) {
const t = useTheme()
+ const {_} = useLingui()
const {
isLoading: isPreferencesLoading,
- // error: preferencesError,
+ error: preferencesError,
data: preferences,
} = usePreferencesQuery()
+ const {gtMobile} = useBreakpoints()
+ const {height} = useSafeAreaFrame()
- return isPreferencesLoading ? (
-
-
-
- ) : preferences ? (
-
- ) : // TODO
- null
+ return (
+
+
+
+ {isPreferencesLoading ? (
+
+
+
+ ) : preferencesError || !preferences ? (
+
+ ) : (
+
+ )}
+
+ )
}
function ModerationScreenIntermediate({
@@ -75,25 +130,32 @@ function ModerationScreenIntermediate({
preferences: UsePreferencesQueryResponse
}) {
const t = useTheme()
+ const {_} = useLingui()
const {
isLoading: isModServicesLoading,
data: modservices,
- // error: modservicesError,
+ error: modservicesError,
} = useModServicesDetailedInfoQuery({
dids: preferences.moderationOpts.mods.map(m => m.did),
})
return isModServicesLoading ? (
-
+
- ) : modservices ? (
+ ) : modservicesError || !modservices ? (
+
+ ) : (
- ) : // TODO
- null
+ )
}
export function ModerationScreenInner({
@@ -104,10 +166,9 @@ export function ModerationScreenInner({
modservices: AppBskyModerationDefs.ModServiceViewDetailed[]
}) {
const t = useTheme()
- const {_} = useLingui()
const setMinimalShellMode = useSetMinimalShellMode()
const {screen} = useAnalytics()
- const {gtMobile, gtTablet} = useBreakpoints()
+ const {gtTablet} = useBreakpoints()
const labelGroupStrings = useLabelGroupStrings()
const modSettingsDialogControl = Dialog.useDialogControl()
@@ -165,21 +226,12 @@ export function ModerationScreenInner({
)
return (
-
+
-
-
{!gtTablet && }
@@ -280,7 +332,7 @@ export function ModerationScreenInner({
-
+
)
}