diff options
author | Hailey <me@haileyok.com> | 2024-05-03 14:18:01 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-03 14:18:01 -0700 |
commit | 876816675e84d4175072950f36af5e19d412ce9b (patch) | |
tree | f1dccf0b3e7807e4f037275877382eb2394ec345 /src/state/messages/convo.ts | |
parent | 6a4199febbf70abbbe88eb99142ed76d4ae136b0 (diff) | |
download | voidsky-876816675e84d4175072950f36af5e19d412ce9b.tar.zst |
[Clipclops] Refactor message list (#3832)
* rework the list for accessibility * Reverse reverse * progress * good to start testing * memo `MessageItem` * small hack * use our custom `List` impl * use `ScrollProvider` for `onScroll` event * remove use of `runOnJS` * actually, let's keep it * add some comments --------- Co-authored-by: Eric Bailey <git@esb.lol>
Diffstat (limited to 'src/state/messages/convo.ts')
-rw-r--r-- | src/state/messages/convo.ts | 46 |
1 files changed, 22 insertions, 24 deletions
diff --git a/src/state/messages/convo.ts b/src/state/messages/convo.ts index fe2095c46..a65e0c486 100644 --- a/src/state/messages/convo.ts +++ b/src/state/messages/convo.ts @@ -710,8 +710,11 @@ export class Convo { getItems(): ConvoItem[] { const items: ConvoItem[] = [] - // `newMessages` is in insertion order, unshift to reverse - this.newMessages.forEach(m => { + this.headerItems.forEach(item => { + items.push(item) + }) + + this.pastMessages.forEach(m => { if (ChatBskyConvoDefs.isMessageView(m)) { items.unshift({ type: 'message', @@ -729,27 +732,7 @@ export class Convo { } }) - // `newMessages` is in insertion order, unshift to reverse - this.pendingMessages.forEach(m => { - items.unshift({ - type: 'pending-message', - key: m.id, - message: { - ...m.message, - id: nanoid(), - rev: '__fake__', - sentAt: new Date().toISOString(), - sender: this.sender, - }, - nextMessage: null, - }) - }) - - this.footerItems.forEach(item => { - items.unshift(item) - }) - - this.pastMessages.forEach(m => { + this.newMessages.forEach(m => { if (ChatBskyConvoDefs.isMessageView(m)) { items.push({ type: 'message', @@ -767,7 +750,22 @@ export class Convo { } }) - this.headerItems.forEach(item => { + this.pendingMessages.forEach(m => { + items.push({ + type: 'pending-message', + key: m.id, + message: { + ...m.message, + id: nanoid(), + rev: '__fake__', + sentAt: new Date().toISOString(), + sender: this.sender, + }, + nextMessage: null, + }) + }) + + this.footerItems.forEach(item => { items.push(item) }) |