From 0a26e78dcbbf48dad5daae73b210e236d706b22c Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Tue, 14 Nov 2023 10:41:55 -0800 Subject: Composer update (react-query refactor) (#1899) * Move composer state to a context * Rework composer to use RQ --------- Co-authored-by: Eric Bailey --- src/view/com/post-thread/PostThreadItem.tsx | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'src/view/com/post-thread/PostThreadItem.tsx') diff --git a/src/view/com/post-thread/PostThreadItem.tsx b/src/view/com/post-thread/PostThreadItem.tsx index 88889fd18..c81b762c3 100644 --- a/src/view/com/post-thread/PostThreadItem.tsx +++ b/src/view/com/post-thread/PostThreadItem.tsx @@ -20,7 +20,6 @@ import {sanitizeHandle} from 'lib/strings/handles' import {countLines, pluralize} from 'lib/strings/helpers' import {isEmbedByEmbedder} from 'lib/embeds' import {getTranslatorLink, isPostInLanguage} from '../../../locale/helpers' -import {useStores} from 'state/index' import {PostMeta} from '../util/PostMeta' import {PostEmbeds} from '../util/post-embeds' import {PostCtrls} from '../util/post-ctrls/PostCtrls' @@ -39,6 +38,8 @@ import {MAX_POST_LINES} from 'lib/constants' import {Trans} from '@lingui/macro' import {useLanguagePrefs} from '#/state/preferences' import {usePostShadow, POST_TOMBSTONE} from '#/state/cache/post-shadow' +import {useComposerControls} from '#/state/shell/composer' +import {useModerationOpts} from '#/state/queries/preferences' export function PostThreadItem({ post, @@ -65,7 +66,7 @@ export function PostThreadItem({ hasPrecedingItem: boolean onPostReply: () => void }) { - const store = useStores() + const moderationOpts = useModerationOpts() const postShadowed = usePostShadow(post, dataUpdatedAt) const richText = useMemo( () => @@ -77,8 +78,8 @@ export function PostThreadItem({ ) const moderation = useMemo( () => - post ? moderatePost(post, store.preferences.moderationOpts) : undefined, - [post, store], + post && moderationOpts ? moderatePost(post, moderationOpts) : undefined, + [post, moderationOpts], ) if (postShadowed === POST_TOMBSTONE) { return @@ -145,8 +146,8 @@ function PostThreadItemLoaded({ onPostReply: () => void }) { const pal = usePalette('default') - const store = useStores() const langPrefs = useLanguagePrefs() + const {openComposer} = useComposerControls() const [limitLines, setLimitLines] = React.useState( countLines(richText?.text) >= MAX_POST_LINES, ) @@ -187,7 +188,7 @@ function PostThreadItemLoaded({ ) const onPressReply = React.useCallback(() => { - store.shell.openComposer({ + openComposer({ replyTo: { uri: post.uri, cid: post.cid, @@ -200,7 +201,7 @@ function PostThreadItemLoaded({ }, onPost: onPostReply, }) - }, [store, post, record, onPostReply]) + }, [openComposer, post, record, onPostReply]) const onPressShowMore = React.useCallback(() => { setLimitLines(false) -- cgit 1.4.1