ensure headers are set when chat reporting (#8985)

This commit is contained in:
Samuel Newman
2025-09-05 17:33:27 +03:00
parent a77c7873f9
commit 2e2ce32106
4 changed files with 35 additions and 20 deletions
@@ -1,10 +1,11 @@
import React from 'react' import React from 'react'
import {View} from 'react-native' import {View} from 'react-native'
import {BSKY_LABELER_DID, ComAtprotoModerationDefs} from '@atproto/api' import {ComAtprotoModerationDefs} from '@atproto/api'
import {msg, Trans} from '@lingui/macro' import {msg, Trans} from '@lingui/macro'
import {useLingui} from '@lingui/react' import {useLingui} from '@lingui/react'
import {useMutation} from '@tanstack/react-query' import {useMutation} from '@tanstack/react-query'
import {BLUESKY_MOD_SERVICE_HEADERS} from '#/lib/constants'
import {logger} from '#/state/ageAssurance/util' import {logger} from '#/state/ageAssurance/util'
import {useAgent, useSession} from '#/state/session' import {useAgent, useSession} from '#/state/session'
import * as Toast from '#/view/com/util/Toast' import * as Toast from '#/view/com/util/Toast'
@@ -58,9 +59,7 @@ function Inner({control}: {control: Dialog.DialogControlProps}) {
}, },
{ {
encoding: 'application/json', encoding: 'application/json',
headers: { headers: BLUESKY_MOD_SERVICE_HEADERS,
'atproto-proxy': `${BSKY_LABELER_DID}#atproto_labeler`,
},
}, },
) )
}, },
+13 -8
View File
@@ -1,19 +1,21 @@
import React, {memo, useMemo, useState} from 'react' import {memo, useMemo, useState} from 'react'
import {View} from 'react-native' import {View} from 'react-native'
import { import {
$Typed, type $Typed,
AppBskyActorDefs, type AppBskyActorDefs,
ChatBskyConvoDefs, type ChatBskyConvoDefs,
ComAtprotoModerationCreateReport, type ComAtprotoModerationCreateReport,
RichText as RichTextAPI, RichText as RichTextAPI,
} from '@atproto/api' } from '@atproto/api'
import {msg, Trans} from '@lingui/macro' import {msg, Trans} from '@lingui/macro'
import {useLingui} from '@lingui/react' import {useLingui} from '@lingui/react'
import {StackActions, useNavigation} from '@react-navigation/native' import {StackActions, useNavigation} from '@react-navigation/native'
import {useMutation} from '@tanstack/react-query' import {useMutation} from '@tanstack/react-query'
import type React from 'react'
import {ReportOption} from '#/lib/moderation/useReportOptions' import {BLUESKY_MOD_SERVICE_HEADERS} from '#/lib/constants'
import {NavigationProp} from '#/lib/routes/types' import {type ReportOption} from '#/lib/moderation/useReportOptions'
import {type NavigationProp} from '#/lib/routes/types'
import {isNative} from '#/platform/detection' import {isNative} from '#/platform/detection'
import {useProfileShadow} from '#/state/cache/profile-shadow' import {useProfileShadow} from '#/state/cache/profile-shadow'
import {useLeaveConvo} from '#/state/queries/messages/leave-conversation' import {useLeaveConvo} from '#/state/queries/messages/leave-conversation'
@@ -168,7 +170,10 @@ function SubmitStep({
reason: details, reason: details,
} satisfies ComAtprotoModerationCreateReport.InputSchema } satisfies ComAtprotoModerationCreateReport.InputSchema
await agent.createModerationReport(report) await agent.createModerationReport(report, {
encoding: 'application/json',
headers: BLUESKY_MOD_SERVICE_HEADERS,
})
} }
}, },
onSuccess: onComplete, onSuccess: onComplete,
+5 -1
View File
@@ -1,5 +1,5 @@
import {type Insets, Platform} from 'react-native' import {type Insets, Platform} from 'react-native'
import {type AppBskyActorDefs} from '@atproto/api' import {type AppBskyActorDefs, BSKY_LABELER_DID} from '@atproto/api'
import {type ProxyHeaderValue} from '#/state/session/agent' import {type ProxyHeaderValue} from '#/state/session/agent'
import {BLUESKY_PROXY_DID, CHAT_PROXY_DID} from '#/env' import {BLUESKY_PROXY_DID, CHAT_PROXY_DID} from '#/env'
@@ -228,6 +228,10 @@ export const DM_SERVICE_HEADERS = {
'atproto-proxy': `${CHAT_PROXY_DID}#bsky_chat`, 'atproto-proxy': `${CHAT_PROXY_DID}#bsky_chat`,
} }
export const BLUESKY_MOD_SERVICE_HEADERS = {
'atproto-proxy': `${BSKY_LABELER_DID}#atproto_labeler`,
}
export const webLinks = { export const webLinks = {
tos: `https://bsky.social/about/support/tos`, tos: `https://bsky.social/about/support/tos`,
privacy: `https://bsky.social/about/support/privacy-policy`, privacy: `https://bsky.social/about/support/privacy-policy`,
@@ -5,6 +5,7 @@ import {msg, Trans} from '@lingui/macro'
import {useLingui} from '@lingui/react' import {useLingui} from '@lingui/react'
import {useMutation} from '@tanstack/react-query' import {useMutation} from '@tanstack/react-query'
import {BLUESKY_MOD_SERVICE_HEADERS} from '#/lib/constants'
import {logger} from '#/logger' import {logger} from '#/logger'
import {useAgent, useSession} from '#/state/session' import {useAgent, useSession} from '#/state/session'
import * as Toast from '#/view/com/util/Toast' import * as Toast from '#/view/com/util/Toast'
@@ -73,14 +74,20 @@ function DialogInner() {
mutationFn: async () => { mutationFn: async () => {
if (!currentAccount) if (!currentAccount)
throw new Error('No current account, should be unreachable') throw new Error('No current account, should be unreachable')
await agent.createModerationReport({ await agent.createModerationReport(
reasonType: ComAtprotoModerationDefs.REASONAPPEAL, {
subject: { reasonType: ComAtprotoModerationDefs.REASONAPPEAL,
$type: 'com.atproto.admin.defs#repoRef', subject: {
did: currentAccount.did, $type: 'com.atproto.admin.defs#repoRef',
did: currentAccount.did,
},
reason: details,
}, },
reason: details, {
}) encoding: 'application/json',
headers: BLUESKY_MOD_SERVICE_HEADERS,
},
)
}, },
onError: err => { onError: err => {
logger.error('Failed to submit chat appeal', {message: err}) logger.error('Failed to submit chat appeal', {message: err})