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({ - + ) }