Bluesky app fork with some witchin' additions 💫
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

[Clipclops] Pending messages (#3803)

* Make pending message like normal message

* Remove getter

* Make props public

authored by

Eric Bailey and committed by
GitHub
5148b957 e2556d9f

+19 -13
+1 -3
src/screens/Messages/Conversation/MessagesList.tsx
··· 26 26 } 27 27 28 28 function renderItem({item}: {item: ConvoItem}) { 29 - if (item.type === 'message') { 29 + if (item.type === 'message' || item.type === 'pending-message') { 30 30 return <MessageItem item={item.message} next={item.nextMessage} /> 31 31 } else if (item.type === 'deleted-message') { 32 32 return <Text>Deleted message</Text> 33 - } else if (item.type === 'pending-message') { 34 - return <Text>{item.message.text}</Text> 35 33 } else if (item.type === 'pending-retry') { 36 34 return ( 37 35 <View>
+18 -10
src/state/messages/convo.ts
··· 1 + import {AppBskyActorDefs} from '@atproto/api' 1 2 import { 2 3 BskyAgent, 3 4 ChatBskyConvoDefs, ··· 24 25 25 26 export type ConvoItem = 26 27 | { 27 - type: 'message' 28 + type: 'message' | 'pending-message' 28 29 key: string 29 30 message: ChatBskyConvoDefs.MessageView 30 31 nextMessage: ··· 42 43 | null 43 44 } 44 45 | { 45 - type: 'pending-message' 46 - key: string 47 - message: ChatBskyConvoSendMessage.InputSchema['message'] 48 - } 49 - | { 50 46 type: 'pending-retry' 51 47 key: string 52 48 retry: () => void ··· 85 81 } 86 82 87 83 export class Convo { 88 - private convoId: string 89 84 private agent: BskyAgent 90 85 private __tempFromUserDid: string 91 86 92 87 private status: ConvoStatus = ConvoStatus.Uninitialized 93 88 private error: any 94 - private convo: ChatBskyConvoDefs.ConvoView | undefined 95 89 private historyCursor: string | undefined | null = undefined 96 90 private isFetchingHistory = false 97 91 private eventsCursor: string | undefined = undefined 92 + 93 + convoId: string 94 + convo: ChatBskyConvoDefs.ConvoView | undefined 95 + sender: AppBskyActorDefs.ProfileViewBasic | undefined 98 96 99 97 private pastMessages: Map< 100 98 string, ··· 137 135 const {convo} = response.data 138 136 139 137 this.convo = convo 138 + this.sender = this.convo.members.find( 139 + m => m.did === this.__tempFromUserDid, 140 + ) 140 141 this.status = ConvoStatus.Ready 141 142 142 143 this.commit() ··· 324 325 this.newMessages.set(res.id, { 325 326 ...res, 326 327 $type: 'chat.bsky.convo.defs#messageView', 327 - sender: this.convo?.members.find(m => m.did === this.__tempFromUserDid), 328 + sender: this.sender, 328 329 }) 329 330 this.pendingMessages.delete(id) 330 331 ··· 440 441 items.unshift({ 441 442 type: 'pending-message', 442 443 key: m.id, 443 - message: m.message, 444 + message: { 445 + ...m.message, 446 + id: nanoid(), 447 + rev: '__fake__', 448 + sentAt: new Date().toISOString(), 449 + sender: this.sender, 450 + }, 451 + nextMessage: null, 444 452 }) 445 453 }) 446 454