Show just-posted replies above OP replies (#4901)
* Unify onPostReply handler * Show just-posted replies above OP replies * Only do this for the highlighted post or thread mode It's confusing to have your post displace OP thread or other people's leaf posts.
This commit is contained in:
parent
c1af767fa6
commit
e782db33dc
5 changed files with 53 additions and 10 deletions
|
@ -160,12 +160,22 @@ export function PostThread({uri}: {uri: string | undefined}) {
|
|||
return cache
|
||||
}, [thread, moderationOpts])
|
||||
|
||||
const [justPostedUris, setJustPostedUris] = React.useState(
|
||||
() => new Set<string>(),
|
||||
)
|
||||
|
||||
const skeleton = React.useMemo(() => {
|
||||
const threadViewPrefs = preferences?.threadViewPrefs
|
||||
if (!threadViewPrefs || !thread) return null
|
||||
|
||||
return createThreadSkeleton(
|
||||
sortThread(thread, threadViewPrefs, threadModerationCache, currentDid),
|
||||
sortThread(
|
||||
thread,
|
||||
threadViewPrefs,
|
||||
threadModerationCache,
|
||||
currentDid,
|
||||
justPostedUris,
|
||||
),
|
||||
!!currentDid,
|
||||
treeView,
|
||||
threadModerationCache,
|
||||
|
@ -178,6 +188,7 @@ export function PostThread({uri}: {uri: string | undefined}) {
|
|||
treeView,
|
||||
threadModerationCache,
|
||||
hiddenRepliesState,
|
||||
justPostedUris,
|
||||
])
|
||||
|
||||
const error = React.useMemo(() => {
|
||||
|
@ -302,6 +313,20 @@ export function PostThread({uri}: {uri: string | undefined}) {
|
|||
setMaxReplies(prev => prev + 50)
|
||||
}, [isFetching, maxReplies, posts.length])
|
||||
|
||||
const onPostReply = React.useCallback(
|
||||
(postUri: string | undefined) => {
|
||||
refetch()
|
||||
if (postUri) {
|
||||
setJustPostedUris(set => {
|
||||
const nextSet = new Set(set)
|
||||
nextSet.add(postUri)
|
||||
return nextSet
|
||||
})
|
||||
}
|
||||
},
|
||||
[refetch],
|
||||
)
|
||||
|
||||
const {openComposer} = useComposerControls()
|
||||
const onPressReply = React.useCallback(() => {
|
||||
if (thread?.type !== 'post') {
|
||||
|
@ -315,9 +340,9 @@ export function PostThread({uri}: {uri: string | undefined}) {
|
|||
author: thread.post.author,
|
||||
embed: thread.post.embed,
|
||||
},
|
||||
onPost: () => refetch(),
|
||||
onPost: onPostReply,
|
||||
})
|
||||
}, [openComposer, thread, refetch])
|
||||
}, [openComposer, thread, onPostReply])
|
||||
|
||||
const canReply = !error && rootPost && !rootPost.viewer?.replyDisabled
|
||||
const hasParents =
|
||||
|
@ -415,7 +440,7 @@ export function PostThread({uri}: {uri: string | undefined}) {
|
|||
HiddenRepliesState.ShowAndOverridePostHider &&
|
||||
item.ctx.depth > 0
|
||||
}
|
||||
onPostReply={refetch}
|
||||
onPostReply={onPostReply}
|
||||
hideTopBorder={index === 0 && !item.ctx.isParentLoading}
|
||||
/>
|
||||
</View>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue