Bluesky app fork with some witchin' additions 💫 witchsky.app
bluesky fork client

Remove `moderatePost_wrapped` (#7188)

* rm `moderatePost_wrapped`

* Handle display in app

---------

Co-authored-by: Eric Bailey <git@esb.lol>

authored by samuel.fm

Eric Bailey and committed by
GitHub
0d1373bb cc8369e8

+19 -55
-14
.eslintrc.js
··· 80 80 ], 81 81 'simple-import-sort/exports': 'error', 82 82 'react-compiler/react-compiler': 'warn', 83 - 'no-restricted-imports': [ 84 - 'error', 85 - { 86 - paths: [ 87 - { 88 - name: '@atproto/api', 89 - importNames: ['moderatePost'], 90 - message: 91 - 'Please use `moderatePost_wrapped` from `#/lib/moderatePost_wrapped` instead.', 92 - }, 93 - ], 94 - }, 95 - ], 96 - '@typescript-eslint/ban-ts-comment': 'warn', 97 83 }, 98 84 ignorePatterns: [ 99 85 '**/__mocks__/*.ts',
+1
bskyembed/src/labels.ts
··· 13 13 return 'Adult Content' 14 14 case 'nudity': 15 15 return 'Non-sexual Nudity' 16 + case 'gore': 16 17 case 'graphic-media': 17 18 return 'Graphic Media' 18 19 default:
+1
bskyogcard/src/routes/starter-pack.tsx
··· 97 97 'nudity', 98 98 'sexual-figurative', 99 99 'graphic-media', 100 + 'gore', 100 101 'self-harm', 101 102 'sensitive', 102 103 'security',
-31
src/lib/moderatePost_wrapped.ts
··· 1 - /* eslint-disable-next-line no-restricted-imports */ 2 - import {BSKY_LABELER_DID, moderatePost} from '@atproto/api' 3 - 4 - type ModeratePost = typeof moderatePost 5 - type Options = Parameters<ModeratePost>[1] 6 - 7 - export function moderatePost_wrapped( 8 - subject: Parameters<ModeratePost>[0], 9 - opts: Options, 10 - ) { 11 - // HACK 12 - // temporarily translate 'gore' into 'graphic-media' during the transition period 13 - // can remove this in a few months 14 - // -prf 15 - translateOldLabels(subject) 16 - 17 - return moderatePost(subject, opts) 18 - } 19 - 20 - function translateOldLabels(subject: Parameters<ModeratePost>[0]) { 21 - if (subject.labels) { 22 - for (const label of subject.labels) { 23 - if ( 24 - label.val === 'gore' && 25 - (!label.src || label.src === BSKY_LABELER_DID) 26 - ) { 27 - label.val = 'graphic-media' 28 - } 29 - } 30 - } 31 - }
+4
src/lib/moderation/useGlobalLabelStrings.ts
··· 46 46 name: _(msg`Graphic Media`), 47 47 description: _(msg`Explicit or potentially disturbing media.`), 48 48 }, 49 + gore: { 50 + name: _(msg`Graphic Media`), 51 + description: _(msg`Explicit or potentially disturbing media.`), 52 + }, 49 53 }), 50 54 [_], 51 55 )
+1 -1
src/screens/Messages/components/MessageInputEmbed.tsx
··· 4 4 AppBskyFeedPost, 5 5 AppBskyRichtextFacet, 6 6 AtUri, 7 + moderatePost, 7 8 RichText as RichTextAPI, 8 9 } from '@atproto/api' 9 10 import {msg} from '@lingui/macro' 10 11 import {useLingui} from '@lingui/react' 11 12 import {RouteProp, useNavigation, useRoute} from '@react-navigation/native' 12 13 13 - import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped' 14 14 import {makeProfileLink} from '#/lib/routes/links' 15 15 import {CommonNavigatorParams, NavigationProp} from '#/lib/routes/types' 16 16 import {
+1 -1
src/state/queries/notifications/feed.ts
··· 22 22 AppBskyFeedDefs, 23 23 AppBskyFeedPost, 24 24 AtUri, 25 + moderatePost, 25 26 } from '@atproto/api' 26 27 import { 27 28 InfiniteData, ··· 31 32 useQueryClient, 32 33 } from '@tanstack/react-query' 33 34 34 - import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped' 35 35 import {useAgent} from '#/state/session' 36 36 import {useThreadgateHiddenReplyUris} from '#/state/threadgate-hidden-replies' 37 37 import {useModerationOpts} from '../../preferences/moderation-opts'
+1 -1
src/state/queries/post-feed.ts
··· 6 6 AppBskyFeedPost, 7 7 AtUri, 8 8 BskyAgent, 9 + moderatePost, 9 10 ModerationDecision, 10 11 } from '@atproto/api' 11 12 import { ··· 27 28 import {FeedTuner, FeedTunerFn} from '#/lib/api/feed-manip' 28 29 import {DISCOVER_FEED_URI} from '#/lib/constants' 29 30 import {BSKY_FEED_OWNER_DIDS} from '#/lib/constants' 30 - import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped' 31 31 import {logger} from '#/logger' 32 32 import {STALE} from '#/state/queries' 33 33 import {DEFAULT_LOGGED_OUT_PREFERENCES} from '#/state/queries/preferences/const'
+1 -1
src/state/queries/post-thread.ts
··· 5 5 AppBskyFeedGetPostThread, 6 6 AppBskyFeedPost, 7 7 AtUri, 8 + moderatePost, 8 9 ModerationDecision, 9 10 ModerationOpts, 10 11 } from '@atproto/api' 11 12 import {QueryClient, useQuery, useQueryClient} from '@tanstack/react-query' 12 13 13 - import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped' 14 14 import {findAllPostsInQueryData as findAllPostsInQuoteQueryData} from '#/state/queries/post-quotes' 15 15 import {UsePreferencesQueryResponse} from '#/state/queries/preferences/types' 16 16 import {
+1 -1
src/state/queries/search-posts.ts
··· 4 4 AppBskyFeedDefs, 5 5 AppBskyFeedSearchPosts, 6 6 AtUri, 7 + moderatePost, 7 8 } from '@atproto/api' 8 9 import { 9 10 InfiniteData, ··· 12 13 useInfiniteQuery, 13 14 } from '@tanstack/react-query' 14 15 15 - import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped' 16 16 import {useModerationOpts} from '#/state/preferences/moderation-opts' 17 17 import {useAgent} from '#/state/session' 18 18 import {
+1 -1
src/view/com/post-thread/PostQuotes.tsx
··· 2 2 import { 3 3 AppBskyFeedDefs, 4 4 AppBskyFeedPost, 5 + moderatePost, 5 6 ModerationDecision, 6 7 } from '@atproto/api' 7 8 import {msg} from '@lingui/macro' 8 9 import {useLingui} from '@lingui/react' 9 10 10 11 import {useInitialNumToRender} from '#/lib/hooks/useInitialNumToRender' 11 - import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped' 12 12 import {cleanError} from '#/lib/strings/errors' 13 13 import {logger} from '#/logger' 14 14 import {useModerationOpts} from '#/state/preferences/moderation-opts'
+5 -2
src/view/com/post-thread/PostThread.tsx
··· 3 3 import {runOnJS} from 'react-native-reanimated' 4 4 import Animated from 'react-native-reanimated' 5 5 import {useSafeAreaInsets} from 'react-native-safe-area-context' 6 - import {AppBskyFeedDefs, AppBskyFeedThreadgate} from '@atproto/api' 6 + import { 7 + AppBskyFeedDefs, 8 + AppBskyFeedThreadgate, 9 + moderatePost, 10 + } from '@atproto/api' 7 11 import {msg, Trans} from '@lingui/macro' 8 12 import {useLingui} from '@lingui/react' 9 13 ··· 12 16 import {useMinimalShellFabTransform} from '#/lib/hooks/useMinimalShellTransform' 13 17 import {useSetTitle} from '#/lib/hooks/useSetTitle' 14 18 import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' 15 - import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped' 16 19 import {clamp} from '#/lib/numbers' 17 20 import {ScrollProvider} from '#/lib/ScrollContext' 18 21 import {sanitizeDisplayName} from '#/lib/strings/display-names'
+1 -1
src/view/com/post/Post.tsx
··· 4 4 AppBskyFeedDefs, 5 5 AppBskyFeedPost, 6 6 AtUri, 7 + moderatePost, 7 8 ModerationDecision, 8 9 RichText as RichTextAPI, 9 10 } from '@atproto/api' ··· 14 15 15 16 import {MAX_POST_LINES} from '#/lib/constants' 16 17 import {usePalette} from '#/lib/hooks/usePalette' 17 - import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped' 18 18 import {makeProfileLink} from '#/lib/routes/links' 19 19 import {countLines} from '#/lib/strings/helpers' 20 20 import {colors, s} from '#/lib/styles'
+1 -1
src/view/com/util/post-embeds/QuoteEmbed.tsx
··· 14 14 AppBskyEmbedVideo, 15 15 AppBskyFeedDefs, 16 16 AppBskyFeedPost, 17 + moderatePost, 17 18 ModerationDecision, 18 19 RichText as RichTextAPI, 19 20 } from '@atproto/api' ··· 26 27 import {HITSLOP_20} from '#/lib/constants' 27 28 import {usePalette} from '#/lib/hooks/usePalette' 28 29 import {InfoCircleIcon} from '#/lib/icons' 29 - import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped' 30 30 import {makeProfileLink} from '#/lib/routes/links' 31 31 import {s} from '#/lib/styles' 32 32 import {useModerationOpts} from '#/state/preferences/moderation-opts'