Protect against 3p PDSs and bad responses

This commit is contained in:
Eric Bailey 2024-09-11 21:52:26 -05:00
parent 6e78ce53d7
commit 45c8d89d92

View file

@ -90,8 +90,11 @@ export function TenMillion() {
React.useEffect(() => { React.useEffect(() => {
async function fetchUserNumber() { async function fetchUserNumber() {
// TODO check for 3p PDS const isBlueskyHosted = agent.sessionManager.pdsUrl
if (agent.session?.accessJwt) { ?.toString()
.includes('bsky.network')
if (isBlueskyHosted && agent.session?.accessJwt) {
const res = await fetch( const res = await fetch(
`https://bsky.social/xrpc/com.atproto.temp.getSignupNumber`, `https://bsky.social/xrpc/com.atproto.temp.getSignupNumber`,
{ {
@ -109,6 +112,9 @@ export function TenMillion() {
if (data.number) { if (data.number) {
setUserNumber(data.number) setUserNumber(data.number)
} else {
// should be rare
nuxDialogs.dismissActiveNux()
} }
} }
} }
@ -117,6 +123,7 @@ export function TenMillion() {
nuxDialogs.dismissActiveNux() nuxDialogs.dismissActiveNux()
}) })
}, [ }, [
agent.sessionManager.pdsUrl,
agent.session?.accessJwt, agent.session?.accessJwt,
setUserNumber, setUserNumber,
nuxDialogs.dismissActiveNux, nuxDialogs.dismissActiveNux,
@ -187,9 +194,9 @@ export function TenMillionInner({userNumber}: {userNumber: number}) {
setTimeout(() => { setTimeout(() => {
openComposer({ openComposer({
text: _( text: _(
msg`I'm user #${i18n.number( msg`Bluesky now has over 10 million users, and I was #${i18n.number(
userNumber, userNumber,
)} out of 10M. What a ride 😎`, )}!`,
), // TODO ), // TODO
imageUris: [ imageUris: [
{ {