diff options
Diffstat (limited to 'src/view/com/post-thread')
-rw-r--r-- | src/view/com/post-thread/PostLikedBy.tsx | 18 | ||||
-rw-r--r-- | src/view/com/post-thread/PostRepostedBy.tsx | 18 | ||||
-rw-r--r-- | src/view/com/post-thread/PostThread.tsx | 60 | ||||
-rw-r--r-- | src/view/com/post-thread/PostThreadFollowBtn.tsx | 20 | ||||
-rw-r--r-- | src/view/com/post-thread/PostThreadItem.tsx | 68 |
5 files changed, 88 insertions, 96 deletions
diff --git a/src/view/com/post-thread/PostLikedBy.tsx b/src/view/com/post-thread/PostLikedBy.tsx index 67ed3b3f5..55463dc13 100644 --- a/src/view/com/post-thread/PostLikedBy.tsx +++ b/src/view/com/post-thread/PostLikedBy.tsx @@ -1,17 +1,15 @@ -import {AppBskyFeedGetLikes as GetLikes} from '@atproto/api' import React, {useCallback, useMemo, useState} from 'react' import {ActivityIndicator, StyleSheet, View} from 'react-native' - -import {cleanError} from '#/lib/strings/errors' -import {logger} from '#/logger' -import {usePostLikedByQuery} from '#/state/queries/post-liked-by' -import {useResolveUriQuery} from '#/state/queries/resolve-uri' - -import {ProfileCardWithFollowBtn} from '../profile/ProfileCard' -import {ErrorMessage} from '../util/error/ErrorMessage' +import {AppBskyFeedGetLikes as GetLikes} from '@atproto/api' +import {CenteredView} from '../util/Views' import {List} from '../util/List' +import {ErrorMessage} from '../util/error/ErrorMessage' +import {ProfileCardWithFollowBtn} from '../profile/ProfileCard' +import {logger} from '#/logger' import {LoadingScreen} from '../util/LoadingScreen' -import {CenteredView} from '../util/Views' +import {useResolveUriQuery} from '#/state/queries/resolve-uri' +import {usePostLikedByQuery} from '#/state/queries/post-liked-by' +import {cleanError} from '#/lib/strings/errors' export function PostLikedBy({uri}: {uri: string}) { const [isPTRing, setIsPTRing] = useState(false) diff --git a/src/view/com/post-thread/PostRepostedBy.tsx b/src/view/com/post-thread/PostRepostedBy.tsx index 82c969235..31a0be832 100644 --- a/src/view/com/post-thread/PostRepostedBy.tsx +++ b/src/view/com/post-thread/PostRepostedBy.tsx @@ -1,17 +1,15 @@ -import {AppBskyActorDefs as ActorDefs} from '@atproto/api' -import React, {useCallback, useMemo, useState} from 'react' +import React, {useMemo, useCallback, useState} from 'react' import {ActivityIndicator, StyleSheet, View} from 'react-native' - -import {cleanError} from '#/lib/strings/errors' -import {logger} from '#/logger' -import {usePostRepostedByQuery} from '#/state/queries/post-reposted-by' -import {useResolveUriQuery} from '#/state/queries/resolve-uri' - +import {AppBskyActorDefs as ActorDefs} from '@atproto/api' +import {CenteredView} from '../util/Views' +import {List} from '../util/List' import {ProfileCardWithFollowBtn} from '../profile/ProfileCard' import {ErrorMessage} from '../util/error/ErrorMessage' -import {List} from '../util/List' +import {logger} from '#/logger' import {LoadingScreen} from '../util/LoadingScreen' -import {CenteredView} from '../util/Views' +import {useResolveUriQuery} from '#/state/queries/resolve-uri' +import {usePostRepostedByQuery} from '#/state/queries/post-reposted-by' +import {cleanError} from '#/lib/strings/errors' export function PostRepostedBy({uri}: {uri: string}) { const [isPTRing, setIsPTRing] = useState(false) diff --git a/src/view/com/post-thread/PostThread.tsx b/src/view/com/post-thread/PostThread.tsx index f022bdeac..a7ee42a94 100644 --- a/src/view/com/post-thread/PostThread.tsx +++ b/src/view/com/post-thread/PostThread.tsx @@ -1,17 +1,3 @@ -import {AppBskyFeedDefs} from '@atproto/api' -import { - FontAwesomeIcon, - FontAwesomeIconStyle, -} from '@fortawesome/react-native-fontawesome' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useNavigation} from '@react-navigation/native' -import {usePalette} from 'lib/hooks/usePalette' -import {useSetTitle} from 'lib/hooks/useSetTitle' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {NavigationProp} from 'lib/routes/types' -import {sanitizeDisplayName} from 'lib/strings/display-names' -import {s} from 'lib/styles' import React, {useEffect, useRef} from 'react' import { ActivityIndicator, @@ -20,33 +6,45 @@ import { TouchableOpacity, View, } from 'react-native' - -import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped' -import {cleanError} from '#/lib/strings/errors' -import {isAndroid, isNative, isWeb} from '#/platform/detection' +import {AppBskyFeedDefs} from '@atproto/api' +import {CenteredView} from '../util/Views' +import {LoadingScreen} from '../util/LoadingScreen' +import {List, ListMethods} from '../util/List' +import { + FontAwesomeIcon, + FontAwesomeIconStyle, +} from '@fortawesome/react-native-fontawesome' +import {PostThreadItem} from './PostThreadItem' +import {ComposePrompt} from '../composer/Prompt' +import {ViewHeader} from '../util/ViewHeader' +import {ErrorMessage} from '../util/error/ErrorMessage' +import {Text} from '../util/text/Text' +import {s} from 'lib/styles' +import {usePalette} from 'lib/hooks/usePalette' +import {useSetTitle} from 'lib/hooks/useSetTitle' import { - sortThread, - ThreadBlocked, ThreadNode, - ThreadNotFound, ThreadPost, + ThreadNotFound, + ThreadBlocked, usePostThreadQuery, + sortThread, } from '#/state/queries/post-thread' +import {useNavigation} from '@react-navigation/native' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {NavigationProp} from 'lib/routes/types' +import {sanitizeDisplayName} from 'lib/strings/display-names' +import {cleanError} from '#/lib/strings/errors' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' import { + UsePreferencesQueryResponse, useModerationOpts, usePreferencesQuery, - UsePreferencesQueryResponse, } from '#/state/queries/preferences' import {useSession} from '#/state/session' - -import {ComposePrompt} from '../composer/Prompt' -import {ErrorMessage} from '../util/error/ErrorMessage' -import {List, ListMethods} from '../util/List' -import {LoadingScreen} from '../util/LoadingScreen' -import {Text} from '../util/text/Text' -import {ViewHeader} from '../util/ViewHeader' -import {CenteredView} from '../util/Views' -import {PostThreadItem} from './PostThreadItem' +import {isAndroid, isNative, isWeb} from '#/platform/detection' +import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped' // FlatList maintainVisibleContentPosition breaks if too many items // are prepended. This seems to be an optimal number based on *shrug*. diff --git a/src/view/com/post-thread/PostThreadFollowBtn.tsx b/src/view/com/post-thread/PostThreadFollowBtn.tsx index 63e2888fd..e5b747cc9 100644 --- a/src/view/com/post-thread/PostThreadFollowBtn.tsx +++ b/src/view/com/post-thread/PostThreadFollowBtn.tsx @@ -1,24 +1,24 @@ +import React from 'react' +import {StyleSheet, TouchableOpacity, View} from 'react-native' +import {useNavigation} from '@react-navigation/native' import {AppBskyActorDefs} from '@atproto/api' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' -import {useNavigation} from '@react-navigation/native' -import {track} from 'lib/analytics/analytics' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' + +import {logger} from '#/logger' +import {Text} from 'view/com/util/text/Text' +import * as Toast from 'view/com/util/Toast' +import {s} from 'lib/styles' import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {s} from 'lib/styles' -import React from 'react' -import {StyleSheet, TouchableOpacity, View} from 'react-native' import {Shadow, useProfileShadow} from 'state/cache/profile-shadow' +import {track} from 'lib/analytics/analytics' import { useProfileFollowMutationQueue, useProfileQuery, } from 'state/queries/profile' import {useRequireAuth} from 'state/session' -import {Text} from 'view/com/util/text/Text' -import * as Toast from 'view/com/util/Toast' - -import {logger} from '#/logger' export function PostThreadFollowBtn({did}: {did: string}) { const {data: profile, isLoading} = useProfileQuery({did}) diff --git a/src/view/com/post-thread/PostThreadItem.tsx b/src/view/com/post-thread/PostThreadItem.tsx index 54c47adae..9522ea6a0 100644 --- a/src/view/com/post-thread/PostThreadItem.tsx +++ b/src/view/com/post-thread/PostThreadItem.tsx @@ -1,52 +1,50 @@ +import React, {memo, useMemo} from 'react' +import {StyleSheet, View} from 'react-native' import { + AtUri, AppBskyFeedDefs, AppBskyFeedPost, - AtUri, - PostModeration, RichText as RichTextAPI, + PostModeration, } from '@atproto/api' +import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {MAX_POST_LINES} from 'lib/constants' -import {isEmbedByEmbedder} from 'lib/embeds' -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {makeProfileLink} from 'lib/routes/links' +import {PostThreadFollowBtn} from 'view/com/post-thread/PostThreadFollowBtn' +import {Link, TextLink} from '../util/Link' +import {RichText} from '#/components/RichText' +import {Text} from '../util/text/Text' +import {PreviewableUserAvatar} from '../util/UserAvatar' +import {s} from 'lib/styles' +import {niceDate} from 'lib/strings/time' import {sanitizeDisplayName} from 'lib/strings/display-names' import {sanitizeHandle} from 'lib/strings/handles' import {countLines, pluralize} from 'lib/strings/helpers' -import {niceDate} from 'lib/strings/time' -import {s} from 'lib/styles' -import React, {memo, useMemo} from 'react' -import {StyleSheet, View} from 'react-native' -import {useSession} from 'state/session' -import {PostThreadFollowBtn} from 'view/com/post-thread/PostThreadFollowBtn' - -import {atoms as a} from '#/alf' -import {RichText} from '#/components/RichText' -import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped' -import {POST_TOMBSTONE, Shadow, usePostShadow} from '#/state/cache/post-shadow' +import {isEmbedByEmbedder} from 'lib/embeds' +import {getTranslatorLink, isPostInLanguage} from '../../../locale/helpers' +import {PostMeta} from '../util/PostMeta' +import {PostEmbeds} from '../util/post-embeds' +import {PostCtrls} from '../util/post-ctrls/PostCtrls' +import {PostHider} from '../util/moderation/PostHider' +import {ContentHider} from '../util/moderation/ContentHider' +import {PostAlerts} from '../util/moderation/PostAlerts' +import {ErrorMessage} from '../util/error/ErrorMessage' +import {usePalette} from 'lib/hooks/usePalette' +import {formatCount} from '../util/numeric/format' +import {makeProfileLink} from 'lib/routes/links' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {MAX_POST_LINES} from 'lib/constants' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {useLanguagePrefs} from '#/state/preferences' +import {useComposerControls} from '#/state/shell/composer' +import {useModerationOpts} from '#/state/queries/preferences' import {useOpenLink} from '#/state/preferences/in-app-browser' +import {Shadow, usePostShadow, POST_TOMBSTONE} from '#/state/cache/post-shadow' import {ThreadPost} from '#/state/queries/post-thread' -import {useModerationOpts} from '#/state/queries/preferences' -import {useComposerControls} from '#/state/shell/composer' - -import {getTranslatorLink, isPostInLanguage} from '../../../locale/helpers' +import {useSession} from 'state/session' import {WhoCanReply} from '../threadgate/WhoCanReply' -import {ErrorMessage} from '../util/error/ErrorMessage' -import {Link, TextLink} from '../util/Link' import {LoadingPlaceholder} from '../util/LoadingPlaceholder' -import {ContentHider} from '../util/moderation/ContentHider' -import {PostAlerts} from '../util/moderation/PostAlerts' -import {PostHider} from '../util/moderation/PostHider' -import {formatCount} from '../util/numeric/format' -import {PostCtrls} from '../util/post-ctrls/PostCtrls' -import {PostEmbeds} from '../util/post-embeds' -import {PostMeta} from '../util/PostMeta' -import {Text} from '../util/text/Text' -import {PreviewableUserAvatar} from '../util/UserAvatar' +import {atoms as a} from '#/alf' export function PostThreadItem({ post, |