[🐴] Swap in new package, update usages (#3992)

* Swap in new package, update usages

* Remove uneccessary patch

* Override type in safe place
This commit is contained in:
Eric Bailey 2024-05-14 09:22:09 -05:00 committed by GitHub
parent 107760d551
commit 9173be686c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
22 changed files with 79 additions and 173 deletions

View file

@ -1,10 +1,10 @@
import {AppBskyActorDefs} from '@atproto/api'
import {
AppBskyActorDefs,
BskyAgent,
ChatBskyConvoDefs,
ChatBskyConvoGetLog,
ChatBskyConvoSendMessage,
} from '@atproto-labs/api'
} from '@atproto/api'
import {nanoid} from 'nanoid/non-secure'
import {networkRetry} from '#/lib/async/retry'
@ -26,6 +26,7 @@ import {
} from '#/state/messages/convo/types'
import {MessagesEventBus} from '#/state/messages/events/agent'
import {MessagesEventBusError} from '#/state/messages/events/types'
import {DM_SERVICE_HEADERS} from '#/state/queries/messages/const'
// TODO temporary
let DEBUG_ACTIVE_CHAT: string | undefined
@ -46,7 +47,7 @@ export class Convo {
private agent: BskyAgent
private events: MessagesEventBus
private __tempFromUserDid: string
private senderUserDid: string
private status: ConvoStatus = ConvoStatus.Uninitialized
private error:
@ -89,7 +90,7 @@ export class Convo {
this.convoId = params.convoId
this.agent = params.agent
this.events = params.events
this.__tempFromUserDid = params.__tempFromUserDid
this.senderUserDid = params.agent.session?.did!
this.subscribe = this.subscribe.bind(this)
this.getSnapshot = this.getSnapshot.bind(this)
@ -467,11 +468,7 @@ export class Convo {
{
convoId: this.convoId,
},
{
headers: {
Authorization: this.__tempFromUserDid,
},
},
{headers: DM_SERVICE_HEADERS},
)
})
@ -479,10 +476,8 @@ export class Convo {
resolve({
convo,
sender: convo.members.find(m => m.did === this.__tempFromUserDid),
recipients: convo.members.filter(
m => m.did !== this.__tempFromUserDid,
),
sender: convo.members.find(m => m.did === this.senderUserDid),
recipients: convo.members.filter(m => m.did !== this.senderUserDid),
})
} catch (e) {
reject(e)
@ -557,11 +552,7 @@ export class Convo {
convoId: this.convoId,
limit: isNative ? 30 : 60,
},
{
headers: {
Authorization: this.__tempFromUserDid,
},
},
{headers: DM_SERVICE_HEADERS},
)
})
const {cursor, messages} = response.data
@ -775,12 +766,7 @@ export class Convo {
convoId: this.convoId,
message,
},
{
encoding: 'application/json',
headers: {
Authorization: this.__tempFromUserDid,
},
},
{encoding: 'application/json', headers: DM_SERVICE_HEADERS},
)
})
const res = response.data
@ -792,7 +778,6 @@ export class Convo {
this.newMessages.set(res.id, {
...res,
$type: 'chat.bsky.convo.defs#messageView',
sender: this.sender,
})
this.pendingMessages.delete(id)
@ -835,12 +820,7 @@ export class Convo {
message,
})),
},
{
encoding: 'application/json',
headers: {
Authorization: this.__tempFromUserDid,
},
},
{encoding: 'application/json', headers: DM_SERVICE_HEADERS},
)
})
const {items} = data
@ -853,9 +833,6 @@ export class Convo {
this.newMessages.set(item.id, {
...item,
$type: 'chat.bsky.convo.defs#messageView',
sender: this.convo?.members.find(
m => m.did === this.__tempFromUserDid,
),
})
}
@ -899,12 +876,7 @@ export class Convo {
convoId: this.convoId,
messageId,
},
{
encoding: 'application/json',
headers: {
Authorization: this.__tempFromUserDid,
},
},
{encoding: 'application/json', headers: DM_SERVICE_HEADERS},
)
})
} catch (e: any) {
@ -970,7 +942,11 @@ export class Convo {
id: nanoid(),
rev: '__fake__',
sentAt: new Date().toISOString(),
sender: this.sender,
/*
* `getItems` is only run in "active" status states, where
* `this.sender` is defined
*/
sender: this.sender!,
},
nextMessage: null,
})

View file

@ -1,6 +1,5 @@
import React, {useContext, useState, useSyncExternalStore} from 'react'
import {AppState} from 'react-native'
import {BskyAgent} from '@atproto-labs/api'
import {useFocusEffect, useIsFocused} from '@react-navigation/native'
import {Convo} from '#/state/messages/convo/agent'
@ -8,7 +7,6 @@ import {ConvoParams, ConvoState} from '#/state/messages/convo/types'
import {useMessagesEventBus} from '#/state/messages/events'
import {useMarkAsReadMutation} from '#/state/queries/messages/conversation'
import {useAgent} from '#/state/session'
import {useDmServiceUrlStorage} from '#/screens/Messages/Temp/useDmServiceUrlStorage'
const ChatContext = React.createContext<ConvoState | null>(null)
@ -25,18 +23,14 @@ export function ConvoProvider({
convoId,
}: Pick<ConvoParams, 'convoId'> & {children: React.ReactNode}) {
const isScreenFocused = useIsFocused()
const {serviceUrl} = useDmServiceUrlStorage()
const {getAgent} = useAgent()
const events = useMessagesEventBus()
const [convo] = useState(
() =>
new Convo({
convoId,
agent: new BskyAgent({
service: serviceUrl,
}),
agent: getAgent(),
events,
__tempFromUserDid: getAgent().session?.did!,
}),
)
const service = useSyncExternalStore(convo.subscribe, convo.getSnapshot)

View file

@ -1,9 +1,9 @@
import {AppBskyActorDefs} from '@atproto/api'
import {
AppBskyActorDefs,
BskyAgent,
ChatBskyConvoDefs,
ChatBskyConvoSendMessage,
} from '@atproto-labs/api'
} from '@atproto/api'
import {MessagesEventBus} from '#/state/messages/events/agent'
@ -11,7 +11,6 @@ export type ConvoParams = {
convoId: string
agent: BskyAgent
events: MessagesEventBus
__tempFromUserDid: string
}
export enum ConvoStatus {

View file

@ -1,4 +1,4 @@
import {BskyAgent, ChatBskyConvoGetLog} from '@atproto-labs/api'
import {BskyAgent, ChatBskyConvoGetLog} from '@atproto/api'
import EventEmitter from 'eventemitter3'
import {nanoid} from 'nanoid/non-secure'
@ -13,6 +13,7 @@ import {
MessagesEventBusParams,
MessagesEventBusStatus,
} from '#/state/messages/events/types'
import {DM_SERVICE_HEADERS} from '#/state/queries/messages/const'
const LOGGER_CONTEXT = 'MessagesEventBus'
@ -20,7 +21,6 @@ export class MessagesEventBus {
private id: string
private agent: BskyAgent
private __tempFromUserDid: string
private emitter = new EventEmitter<{event: [MessagesEventBusEvent]}>()
private status: MessagesEventBusStatus = MessagesEventBusStatus.Initializing
@ -31,7 +31,6 @@ export class MessagesEventBus {
constructor(params: MessagesEventBusParams) {
this.id = nanoid(3)
this.agent = params.agent
this.__tempFromUserDid = params.__tempFromUserDid
this.init()
}
@ -242,11 +241,7 @@ export class MessagesEventBus {
{
limit: 1,
},
{
headers: {
Authorization: this.__tempFromUserDid,
},
},
{headers: DM_SERVICE_HEADERS},
)
})
// throw new Error('UNCOMMENT TO TEST INIT FAILURE')
@ -337,11 +332,7 @@ export class MessagesEventBus {
{
cursor: this.latestRev,
},
{
headers: {
Authorization: this.__tempFromUserDid,
},
},
{headers: DM_SERVICE_HEADERS},
)
})

View file

@ -1,12 +1,10 @@
import React from 'react'
import {AppState} from 'react-native'
import {BskyAgent} from '@atproto-labs/api'
import {useGate} from '#/lib/statsig/statsig'
import {isWeb} from '#/platform/detection'
import {MessagesEventBus} from '#/state/messages/events/agent'
import {useAgent} from '#/state/session'
import {useDmServiceUrlStorage} from '#/screens/Messages/Temp/useDmServiceUrlStorage'
import {IS_DEV} from '#/env'
const MessagesEventBusContext = React.createContext<MessagesEventBus | null>(
@ -26,15 +24,11 @@ export function Temp_MessagesEventBusProvider({
}: {
children: React.ReactNode
}) {
const {serviceUrl} = useDmServiceUrlStorage()
const {getAgent} = useAgent()
const [bus] = React.useState(
() =>
new MessagesEventBus({
agent: new BskyAgent({
service: serviceUrl,
}),
__tempFromUserDid: getAgent().session?.did!,
agent: getAgent(),
}),
)
@ -74,8 +68,7 @@ export function MessagesEventBusProvider({
children: React.ReactNode
}) {
const gate = useGate()
const {serviceUrl} = useDmServiceUrlStorage()
if (gate('dms') && serviceUrl) {
if (gate('dms')) {
return (
<Temp_MessagesEventBusProvider>{children}</Temp_MessagesEventBusProvider>
)

View file

@ -1,8 +1,7 @@
import {BskyAgent, ChatBskyConvoGetLog} from '@atproto-labs/api'
import {BskyAgent, ChatBskyConvoGetLog} from '@atproto/api'
export type MessagesEventBusParams = {
agent: BskyAgent
__tempFromUserDid: string
}
export enum MessagesEventBusStatus {