From fc5cc189b5de42ac1ee44ab0cf3ad78c2a747137 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Fri, 23 Aug 2024 15:55:18 -0500 Subject: [PATCH] Use moderatePost_wrapped for post embeds (#4981) * Use moderatePost_wrapped * Add lint rule --- .eslintrc.js | 13 +++++++++++++ src/lib/moderatePost_wrapped.ts | 3 ++- src/view/com/util/post-embeds/QuoteEmbed.tsx | 4 ++-- src/view/screens/DebugMod.tsx | 1 + 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 9d2b7bbb..2d5f2822 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -71,6 +71,19 @@ module.exports = { 'simple-import-sort/exports': 'warn', // TODO: Reenable when we figure out why it gets stuck on CI. // 'react-compiler/react-compiler': 'error', + 'no-restricted-imports': [ + 'error', + { + paths: [ + { + name: '@atproto/api', + importNames: ['moderatePost'], + message: + 'Please use `moderatePost_wrapped` from `#/lib/moderatePost_wrapped` instead.', + }, + ], + }, + ], }, ignorePatterns: [ '**/__mocks__/*.ts', diff --git a/src/lib/moderatePost_wrapped.ts b/src/lib/moderatePost_wrapped.ts index 0ce01368..f4c9d0aa 100644 --- a/src/lib/moderatePost_wrapped.ts +++ b/src/lib/moderatePost_wrapped.ts @@ -1,4 +1,5 @@ -import {moderatePost, BSKY_LABELER_DID} from '@atproto/api' +/* eslint-disable-next-line no-restricted-imports */ +import {BSKY_LABELER_DID, moderatePost} from '@atproto/api' type ModeratePost = typeof moderatePost type Options = Parameters[1] diff --git a/src/view/com/util/post-embeds/QuoteEmbed.tsx b/src/view/com/util/post-embeds/QuoteEmbed.tsx index 192aea70..ca9dc1c0 100644 --- a/src/view/com/util/post-embeds/QuoteEmbed.tsx +++ b/src/view/com/util/post-embeds/QuoteEmbed.tsx @@ -13,7 +13,6 @@ import { AppBskyEmbedRecordWithMedia, AppBskyFeedDefs, AppBskyFeedPost, - moderatePost, ModerationDecision, RichText as RichTextAPI, } from '@atproto/api' @@ -24,6 +23,7 @@ import {useLingui} from '@lingui/react' import {useQueryClient} from '@tanstack/react-query' import {HITSLOP_20} from '#/lib/constants' +import {moderatePost_wrapped} from '#/lib/moderatePost_wrapped' import {s} from '#/lib/styles' import {useModerationOpts} from '#/state/preferences/moderation-opts' import {useSession} from '#/state/session' @@ -122,7 +122,7 @@ function QuoteEmbedModerated({ const moderationOpts = useModerationOpts() const moderation = React.useMemo(() => { return moderationOpts - ? moderatePost(viewRecordToPostView(viewRecord), moderationOpts) + ? moderatePost_wrapped(viewRecordToPostView(viewRecord), moderationOpts) : undefined }, [viewRecord, moderationOpts]) diff --git a/src/view/screens/DebugMod.tsx b/src/view/screens/DebugMod.tsx index 9c609348..d83623ad 100644 --- a/src/view/screens/DebugMod.tsx +++ b/src/view/screens/DebugMod.tsx @@ -1,3 +1,4 @@ +/* eslint-disable no-restricted-imports */ import React from 'react' import {View} from 'react-native' import {