Bruno Windels
8bf160dfc0
handle sending relations to events that haven't been sent yet
2021-06-04 10:48:59 +02:00
Bruno Windels
2878208e94
keep the DOM small, avoid a node for reactions on every message
2021-06-04 10:08:07 +02:00
Bruno Windels
4ef5afc011
this is actually not used, so remove it
2021-06-04 10:07:52 +02:00
Bruno Windels
dde26da5a6
add mountView utility to handle error handling on mount
...
and use it where errorToDOM is used currently for catching mount errors
2021-06-04 10:07:12 +02:00
Bruno Windels
ff370d03db
catch errors thrown by childview mount method on add in ListView
2021-06-04 09:37:36 +02:00
Bruno Windels
05cc1f6757
make reactions look like element
2021-06-03 21:01:59 +02:00
Bruno Windels
d91282a767
render reactions in div instead of ul
2021-06-03 21:01:47 +02:00
Bruno Windels
3e2b7ba5fa
obsolete, already provided in parent class
2021-06-03 21:01:26 +02:00
Bruno Windels
1385a22e60
don't recreate the reactions after clearing it with the last one removed
2021-06-03 21:00:57 +02:00
Bruno Windels
cc444fa207
we actually don't need any of the view model infrastructure
...
all the updates go over the observable list
2021-06-03 21:00:25 +02:00
Bruno Windels
8d4d9c6e8d
WIP
2021-06-03 19:57:48 +02:00
Bruno Windels
2eb2e4e9b3
more stable sorting order for reactions
2021-06-03 19:57:29 +02:00
Bruno Windels
bb8acbefa3
support undoing a reaction
2021-06-03 19:57:16 +02:00
Bruno Windels
20abb01ee8
very basic way of sending a reaction
2021-06-03 19:16:53 +02:00
Bruno Windels
b722691e85
show reactions as ListView of buttons if present
2021-06-03 19:16:19 +02:00
Bruno Windels
2152d5e833
expose reactions on base message tile as vm with observable list
2021-06-03 19:15:49 +02:00
Bruno Windels
b94ab42c90
delete annotations object when no more annotations left
2021-06-03 19:10:29 +02:00
Bruno Windels
b05345ee27
only show redacted messages
2021-06-03 16:50:37 +02:00
Bruno Windels
a78e9af8fc
Support (de)aggregating annotation relations in relation writer
...
When deaggregating on redacting an annotation relation, we remove the
relation and aggregate the other relations for that key again, so we can
reliably detect the first timestamp (and count and me as well to lesser
extent).
as a consequence, more than one event can get updated when redacting a
relation (the relation is updated, as well as the relation target), so
account for that by returning an array of entries that have updated.
2021-06-03 16:50:37 +02:00
Bruno Windels
41fb30c68b
add relations store
2021-06-03 16:50:37 +02:00
Bruno Windels
36a35d92f0
pass ownUserId to RelationWriter
...
We'll need to to aggregate whether we have reacted to a message
Create writers at room level and pass subwriter is dependency, rather
than creating them in sync and gap writer.
2021-06-03 16:50:37 +02:00
Bruno Windels
46bfab3eb7
fix some lint and comment
2021-06-03 16:50:11 +02:00
Bruno Windels
b83613924c
don't assume there is at least 1 tile before loading at top
...
it can happen that all tiles are not renderable, and we should just
keep calling loadAtTop
2021-06-03 09:25:56 +02:00
Bruno Windels
d965d57be7
don't leak timeline when an error is thrown while opening it
...
or you are just stuck with "not dealing with race" errors until refresh
2021-06-02 18:44:03 +02:00
Bruno Windels
0c4c018ceb
add note that powerlevels won't update when the state event is changed
2021-06-02 18:43:47 +02:00
Bruno Windels
d2f5b412ac
don't try to hook up local relations for events that are not relations
...
and do unnecessary work
2021-06-02 18:43:16 +02:00
Bruno Windels
365bd5cad0
fix the race
2021-06-02 18:42:46 +02:00
Bruno Windels
84ecaa2ee1
don't trip over missing create events when loading power levels
...
as the test from previous commit fails because of that, and powerlevels
works fine without
2021-06-02 18:41:52 +02:00
Bruno Windels
4a8a6168cd
add failing test for race between sync & subscribing after openTimeline
2021-06-02 18:41:03 +02:00
Bruno Windels
d8acf63e1d
change mock event api a bit to be easier to read
2021-06-02 18:38:16 +02:00
Bruno Windels
09bf0f3b4e
fix status styling for text messages being broken
...
as binding was put at argument level rather than className level
2021-06-02 15:25:20 +02:00
Bruno Windels
31075d601f
load power levels before decryption closes the txn
2021-06-02 15:06:30 +02:00
Bruno Windels
cef94fea45
fix lint
2021-06-02 12:38:41 +02:00
Bruno Windels
bf951bd322
fix logging wrong value
2021-06-02 12:34:14 +02:00
Bruno Windels
c3754fdbd4
fix the race, make test succeed
2021-06-02 12:34:02 +02:00
Bruno Windels
87ebdbb0b4
add failing test for unhandled race between sync and send
...
see comments in code
2021-06-02 12:33:15 +02:00
Bruno Windels
8369dcef5f
utility to wait until a value becomes truthy in a test
2021-06-02 12:32:50 +02:00
Bruno Windels
ffb6cb372a
utility to create events in tests
2021-06-02 12:32:34 +02:00
Bruno Windels
cf6e14ed8b
utility for homeserver api mocking
2021-06-02 12:32:19 +02:00
Bruno Windels
6a5679a338
create mock storage using fake-indexeddb
2021-06-02 12:32:03 +02:00
Bruno Windels
edbac25613
prepare storage to work with alternative idb impl
2021-06-02 12:31:13 +02:00
Bruno Windels
8dfed73524
Merge pull request #361 from vector-im/bwindels/redactions
...
Redactions
2021-06-02 10:22:33 +00:00
Bruno Windels
7a96f84cab
also show redaction reason for redaction local echo
2021-06-02 12:17:09 +02:00
Bruno Windels
15f6ab8b7e
only show cancel option if not already sending
2021-06-02 11:56:15 +02:00
Bruno Windels
addddf1f26
remove need for transferLocalEchoState, just add local relations again
2021-05-31 16:33:05 +02:00
Bruno Windels
13a4a0169c
remove obsolete comments
2021-05-31 16:23:59 +02:00
Bruno Windels
25ce06c9d5
clarify
2021-05-31 15:55:31 +02:00
Bruno Windels
dc2e21495b
explain why this is needed
2021-05-31 15:46:57 +02:00
Bruno Windels
8196a02f9d
don't even need isOwn member anymore
2021-05-31 15:25:01 +02:00
Bruno Windels
00231443d3
timeline has the own member, so can just use timeline, not ownUserId
2021-05-31 15:18:44 +02:00