diff --git a/src/components/dms/AfterReportDialog.tsx b/src/components/dms/AfterReportDialog.tsx index ad375be4da..7897846154 100644 --- a/src/components/dms/AfterReportDialog.tsx +++ b/src/components/dms/AfterReportDialog.tsx @@ -69,13 +69,13 @@ function DialogInner({ const control = Dialog.useDialogContext() const { data: profile, - isLoading, + isPending, isError, } = useProfileQuery({ did: params.message.sender.did, }) - return isLoading ? ( + return isPending ? ( diff --git a/src/components/dms/ConvoMenu.tsx b/src/components/dms/ConvoMenu.tsx index 6fcca20814..1ea2a90cd6 100644 --- a/src/components/dms/ConvoMenu.tsx +++ b/src/components/dms/ConvoMenu.tsx @@ -5,6 +5,7 @@ import {msg} from '@lingui/core/macro' import {useLingui} from '@lingui/react' import {Trans} from '@lingui/react/macro' import {useNavigation} from '@react-navigation/native' +import {useQueryClient} from '@tanstack/react-query' import {type NavigationProp} from '#/lib/routes/types' import {type Shadow} from '#/state/cache/types' @@ -13,7 +14,10 @@ import { useMarkAsReadMutation, } from '#/state/queries/messages/conversation' import {useMuteConvo} from '#/state/queries/messages/mute-conversation' -import {useProfileBlockMutationQueue} from '#/state/queries/profile' +import { + unstableCacheProfileView, + useProfileBlockMutationQueue, +} from '#/state/queries/profile' import * as Toast from '#/view/com/util/Toast' import {type ViewStyleProp} from '#/alf' import {atoms as a} from '#/alf' @@ -63,6 +67,7 @@ let ConvoMenu = ({ style?: ViewStyleProp['style'] }): React.ReactNode => { const {_} = useLingui() + const queryClient = useQueryClient() const leaveConvoControl = Prompt.usePromptControl() const reportControl = Prompt.usePromptControl() @@ -125,6 +130,12 @@ let ConvoMenu = ({ }} control={reportControl} onAfterSubmit={() => { + const sender = convo.members.find( + member => member.did === latestReportableMessage.sender.did, + ) + if (sender) { + unstableCacheProfileView(queryClient, sender) + } blockOrDeleteControl.open() }} /> diff --git a/src/components/dms/MessageContextMenu.tsx b/src/components/dms/MessageContextMenu.tsx index 8bc7e018f1..b9eacf1ee4 100644 --- a/src/components/dms/MessageContextMenu.tsx +++ b/src/components/dms/MessageContextMenu.tsx @@ -4,11 +4,13 @@ import * as Clipboard from 'expo-clipboard' import {type ChatBskyConvoDefs, RichText} from '@atproto/api' import {msg} from '@lingui/core/macro' import {useLingui} from '@lingui/react' +import {useQueryClient} from '@tanstack/react-query' import {useTranslate} from '#/lib/hooks/useTranslate' import {richTextToString} from '#/lib/strings/rich-text-helpers' import {useConvoActive} from '#/state/messages/convo' import {useLanguagePrefs} from '#/state/preferences' +import {unstableCacheProfileView} from '#/state/queries/unstable-profile-cache' import {useSession} from '#/state/session' import * as Toast from '#/view/com/util/Toast' import * as ContextMenu from '#/components/ContextMenu' @@ -36,6 +38,7 @@ export let MessageContextMenu = ({ const {_} = useLingui() const ax = useAnalytics() const {currentAccount} = useSession() + const queryClient = useQueryClient() const convo = useConvoActive() const deleteControl = usePromptControl() const reportControl = usePromptControl() @@ -170,7 +173,6 @@ export let MessageContextMenu = ({ { + if (sender) { + unstableCacheProfileView(queryClient, sender) + } blockOrDeleteControl.open() }} /> diff --git a/src/components/moderation/ReportDialog/action.ts b/src/components/moderation/ReportDialog/action.ts index 7f29cd33f8..ee776fd623 100644 --- a/src/components/moderation/ReportDialog/action.ts +++ b/src/components/moderation/ReportDialog/action.ts @@ -102,7 +102,7 @@ export function useSubmitReportMutation() { } if (__DEV__) { - logger.info('Submitting report', { + logger.info('Submitting report (dry run)', { labeler: { handle: labeler.creator.handle, }, diff --git a/src/screens/Messages/components/RequestButtons.tsx b/src/screens/Messages/components/RequestButtons.tsx index 9f9d7236b1..82b5b553f7 100644 --- a/src/screens/Messages/components/RequestButtons.tsx +++ b/src/screens/Messages/components/RequestButtons.tsx @@ -12,7 +12,10 @@ import {useEmail} from '#/state/email-verification' import {useAcceptConversation} from '#/state/queries/messages/accept-conversation' import {precacheConvoQuery} from '#/state/queries/messages/conversation' import {useLeaveConvo} from '#/state/queries/messages/leave-conversation' -import {useProfileBlockMutationQueue} from '#/state/queries/profile' +import { + unstableCacheProfileView, + useProfileBlockMutationQueue, +} from '#/state/queries/profile' import * as Toast from '#/view/com/util/Toast' import {atoms as a} from '#/alf' import { @@ -53,6 +56,8 @@ export function RejectMenu({ const {_} = useLingui() const shadowedProfile = useProfileShadow(profile) const navigation = useNavigation() + const queryClient = useQueryClient() + const {mutate: leaveConvo} = useLeaveConvo(convo.id, { onMutate: () => { if (currentScreen === 'conversation') { @@ -174,6 +179,12 @@ export function RejectMenu({ }} control={reportControl} onAfterSubmit={() => { + const sender = convo.members.find( + member => member.did === lastMessage.sender.did, + ) + if (sender) { + unstableCacheProfileView(queryClient, sender) + } blockOrDeleteControl.open() }} />