diff --git a/src/Navigation.tsx b/src/Navigation.tsx index 1aa3c9e4fd..86295f3795 100644 --- a/src/Navigation.tsx +++ b/src/Navigation.tsx @@ -89,8 +89,9 @@ import {MessagesSettingsScreen} from '#/screens/Messages/Settings' import {ModerationScreen} from '#/screens/Moderation' import {Screen as ModerationVerificationSettings} from '#/screens/Moderation/VerificationSettings' import {ModerationInboxScreen} from '#/screens/ModerationInbox' -import {ModerationInboxReportDetailsScreen} from '#/screens/ModerationInbox/Details' +import {ModerationInboxReportDetailsScreen} from '#/screens/ModerationInbox/Report' import {ModerationInboxSettingsScreen} from '#/screens/ModerationInbox/Settings' +import {ModerationInboxSubjectDetailsScreen} from '#/screens/ModerationInbox/Subject' import {Screen as ModerationInteractionSettings} from '#/screens/ModerationInteractionSettings' import {NotificationsActivityListScreen} from '#/screens/Notifications/ActivityList' import {PostLikedByScreen} from '#/screens/Post/PostLikedBy' @@ -196,6 +197,11 @@ function commonScreens(Stack: typeof Flat, unreadCountLabel?: string) { getComponent={() => ModerationInboxReportDetailsScreen} options={{title: title(msg`Your report`), requireAuth: true}} /> + ModerationInboxSubjectDetailsScreen} + options={{title: title(msg`Notice`), requireAuth: true}} + /> ModerationModlistsScreen} diff --git a/src/lib/routes/types.ts b/src/lib/routes/types.ts index 3ff4f0fc84..6c17355847 100644 --- a/src/lib/routes/types.ts +++ b/src/lib/routes/types.ts @@ -26,6 +26,7 @@ export type CommonNavigatorParams = { ModerationInbox: undefined ModerationInboxSettings: undefined ModerationInboxReportDetails: undefined + ModerationInboxSubjectDetails: undefined ModerationModlists: undefined ModerationMutedAccounts: undefined ModerationBlockedAccounts: undefined diff --git a/src/routes.ts b/src/routes.ts index faf8c88a88..be4da04cf9 100644 --- a/src/routes.ts +++ b/src/routes.ts @@ -20,6 +20,7 @@ export const router = new Router({ ModerationInbox: '/moderation/inbox', ModerationInboxSettings: '/moderation/inbox/settings', ModerationInboxReportDetails: '/moderation/inbox/report/details', + ModerationInboxSubjectDetails: '/moderation/inbox/subject/details', ModerationModlists: '/moderation/modlists', ModerationMutedAccounts: '/moderation/muted-accounts', ModerationBlockedAccounts: '/moderation/blocked-accounts', diff --git a/src/screens/ModerationInbox/Details.tsx b/src/screens/ModerationInbox/Report.tsx similarity index 100% rename from src/screens/ModerationInbox/Details.tsx rename to src/screens/ModerationInbox/Report.tsx diff --git a/src/screens/ModerationInbox/Subject.tsx b/src/screens/ModerationInbox/Subject.tsx new file mode 100644 index 0000000000..7023f17059 --- /dev/null +++ b/src/screens/ModerationInbox/Subject.tsx @@ -0,0 +1,94 @@ +import {View} from 'react-native' +import {Trans, useLingui} from '@lingui/react/macro' + +import {NotFoundScreen} from '#/view/screens/NotFound' +import {atoms as a, useTheme} from '#/alf' +import * as Layout from '#/components/Layout' +import {InlineLinkText} from '#/components/Link' +import {Text} from '#/components/Typography' +import {useAnalytics} from '#/analytics' +import {ActionSummaryText} from './components/ActionSummaryText' +import {ContentBlock} from './components/ContentBlock' +import {SubjectPreview} from './components/SubjectPreview' +import {Timeline} from './components/Timeline' + +const ANTI_HARASSMENT = + 'https://bsky.social/about/support/community-guidelines#:~:text=coordinated%20harassment%20campaigns.-,Anti%2DHarassment,-%3A%20We%20create%20space' + +export function ModerationInboxSubjectDetailsScreen() { + const t = useTheme() + const {t: l} = useLingui() + const ax = useAnalytics() + + const isEnabled = ax.features.enabled(ax.features.ModerationInboxEnable) + + if (!isEnabled) { + return + } + + return ( + + + + + + Notice + + + Bluesky Moderation Service + + + + + + + + + + A moderator reviewed your appeal and reversed the original + decision. Your post has been restored and is visible again. + + + + + + + + + Rule violated: + + + + + Community Guidelines: Harassment + + + + + + + + + + + ) +} diff --git a/src/screens/ModerationInbox/components/ActionSummaryText.tsx b/src/screens/ModerationInbox/components/ActionSummaryText.tsx index a1f077541d..5d03793dcf 100644 --- a/src/screens/ModerationInbox/components/ActionSummaryText.tsx +++ b/src/screens/ModerationInbox/components/ActionSummaryText.tsx @@ -13,7 +13,9 @@ export function ActionSummaryText({ // oxlint-disable-next-line bsky-internal/avoid-unwrapped-text return ( -

+

{header}

{children} diff --git a/src/screens/ModerationInbox/components/ContentBlock.tsx b/src/screens/ModerationInbox/components/ContentBlock.tsx index a6ec96fd67..cb72b822c8 100644 --- a/src/screens/ModerationInbox/components/ContentBlock.tsx +++ b/src/screens/ModerationInbox/components/ContentBlock.tsx @@ -12,7 +12,8 @@ export function ContentBlock({ return ( )