Danila Fedorin
820b048272
Finish up the more difficult tests
2021-09-17 10:57:51 -07:00
Bruno Windels
53a0d29244
example how to get more context for the failure of a write operation
2021-09-17 18:25:28 +02:00
Danila Fedorin
82c35355b6
Start translating GapWriter tests to using MockTimeline
2021-09-16 23:54:13 -07:00
Bruno Windels
9a9b206bf5
Merge pull request #486 from vector-im/bwindels/fix-scroll-jumps
...
Fix scroll jumps and loading of gaps not at top of the timeline
2021-09-16 17:14:17 +02:00
Bruno Windels
381a12db20
load 20 entries initially in timeline, otherwise it flickers a bit
2021-09-16 16:34:13 +02:00
Bruno Windels
cce8207870
copy Daniel's conversion of EventEmitter to TypeScript from microui
2021-09-16 10:23:03 +02:00
Danila Fedorin
d2b604e1dd
Stop using at
to fix tests.
2021-09-14 15:57:32 -07:00
Danila Fedorin
df273c5e2c
Store more events from backfill
2021-09-14 15:40:15 -07:00
Danila Fedorin
b2b5690739
Add more tests
2021-09-14 13:54:14 -07:00
Danila Fedorin
41e568f783
Add more tests and extract common test code
2021-09-14 11:15:13 -07:00
Danila Fedorin
31577cd496
Draft first two tests
2021-09-14 10:24:18 -07:00
Danila Fedorin
b3df37b0bc
Add the beginning of a tests function for GapWriter
2021-09-13 17:01:32 -07:00
Bruno Windels
9411e6f065
WIP
2021-09-10 14:47:05 +02:00
Bruno Windels
5953cdf0cc
turns out we do write these
2021-09-06 13:10:36 +02:00
Bruno Windels
7cb686ce8e
convert EventKey to ts
2021-09-06 13:07:41 +02:00
Bruno Windels
85c8415acd
convert Direction to ts
2021-09-06 13:06:20 +02:00
Bruno Windels
6cec583661
fix #483
2021-09-01 14:21:21 +02:00
Bruno Windels
3d66d71c97
fix conflict
2021-08-31 08:39:12 +02:00
Bruno Windels
7fb5412176
keep comment where it was
2021-08-30 15:12:25 +02:00
Bruno Windels
ddb6753f8d
fix refactor error
2021-08-27 20:05:53 +02:00
Bruno Windels
6a6762f036
ensure memberwriter works with undefined for state/timeline events array
2021-08-27 20:05:34 +02:00
Bruno Windels
a61f052fe8
fix lint
2021-08-27 17:23:32 +02:00
Bruno Windels
826de7e9cb
Write all members of a sync in one go
...
so state member events written but not causing a memberChange.hasJoined
don't prevent timeline member events for the same user from doing so
2021-08-27 17:11:29 +02:00
Danila Fedorin
904a2cbe74
Merge branch 'master' into snowpack-ts-storage-1
2021-08-26 17:07:25 -07:00
Bruno Windels
d0c1ddb51b
add failing test
2021-08-26 15:18:31 +02:00
Bruno Windels
e105bc4237
fix lint warnings
2021-08-24 15:31:18 +02:00
Bruno Windels
4b5f5ddffa
fix ts lint error by making methods abstract
2021-08-18 18:15:03 +02:00
Bruno Windels
02e422f3ac
Merge pull request #448 from vector-im/snowpack-mvp
...
Snowpack MVP
2021-08-18 13:09:02 +00:00
Danila Fedorin
5579c018d1
Migrate common.js to TypeScript
...
Add initial stab at annotating common
Add missing return types and semicolons
2021-08-17 16:30:05 -07:00
Danila Fedorin
8ec8de67b8
Merge branch 'snowpack-mvp' into snowpack-ts-storage-1
2021-08-17 16:29:47 -07:00
Bruno Windels
c3177b06bf
Merge pull request #418 from vector-im/replies
...
Sending replies
2021-08-06 21:28:42 +00:00
Danila Fedorin
3c5b186e31
Switch BaseEntry to TypeScript
2021-08-06 12:54:06 -07:00
Danila Fedorin
ac044cb5c2
Rename pending event fields
2021-08-06 10:27:17 -07:00
Danila Fedorin
1207203b00
Prefer relations from encrypted content
2021-08-06 10:22:43 -07:00
Danila Fedorin
5a0bc55e54
Rename reply function in reply.js
2021-08-06 10:16:20 -07:00
RMidhunSuresh
be57352f71
Move PowerLevels.js into /room
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-08-06 19:49:48 +05:30
RMidhunSuresh
1a062f69fd
Check state_key is zero-length string
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-08-06 19:02:50 +05:30
RMidhunSuresh
d85cf982cc
Check if state_key is present
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-08-06 17:34:21 +05:30
RMidhunSuresh
187cf5cd28
Use optional chaining
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-08-06 17:23:01 +05:30
RMidhunSuresh
2cae7c41d3
Check timeline before state
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-08-06 17:15:40 +05:30
RMidhunSuresh
4ddc7c0683
Update powerlevels in afterSync
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-08-06 17:15:40 +05:30
RMidhunSuresh
40128c7ff6
Set pl from room response
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-08-06 17:15:40 +05:30
RMidhunSuresh
b75760c437
Add event type string
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-08-06 17:15:40 +05:30
Bruno Windels
73884cff0d
Merge pull request #412 from MidhunSureshR/member
...
Member panel - PR 1 - Add method to fetch member
2021-08-05 11:13:52 +00:00
RMidhunSuresh
7e481080b5
Return null
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-08-05 16:32:06 +05:30
Danila Fedorin
06961ff693
Add isReply flag to entries
2021-08-04 15:30:35 -07:00
Danila Fedorin
960e3ec469
Fix unsubscribing from observed events containing null
2021-08-04 11:08:35 -07:00
Danila Fedorin
2375bf061c
Strip relates_to from encrypted events' original contents.
2021-08-04 10:26:03 -07:00
Danila Fedorin
fa985f8f16
Blurb isn't really the right word.
2021-08-04 09:30:02 -07:00
Danila Fedorin
611c6e9717
Move replying code into reply.js and add license
2021-08-04 09:26:26 -07:00
Bruno Windels
0dc5041f47
WIP
2021-08-04 15:23:03 +02:00
Danila Fedorin
8956f6ecf4
Fuse methods and properties related to replies
2021-08-03 13:10:36 -07:00
RMidhunSuresh
c9a4c393ed
Return null
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-08-02 23:51:19 +05:30
RMidhunSuresh
e363d32921
Return null on error
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-08-02 23:42:55 +05:30
RMidhunSuresh
bb68b4d367
Fetch member data from from state event if needed
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-08-02 23:01:44 +05:30
Danila Fedorin
9bd7d1397c
Preserve the m.relates_to field for message.
2021-07-30 14:37:34 -07:00
Danila Fedorin
e2ad589aa3
Go through and clean up affected files.
2021-07-27 16:51:34 -07:00
Danila Fedorin
3d911f2a22
Add escaping to replies
2021-07-26 14:49:06 -07:00
Danila Fedorin
305fab467e
Send a formatted body from quotes
2021-07-23 16:45:22 -07:00
Danila Fedorin
0db6870edb
Flesh out the fallback formatting a bit.
2021-07-23 16:37:23 -07:00
Danila Fedorin
c0d39a5983
Add very rudimentary fallback reply formatting code
2021-07-23 15:34:04 -07:00
Danila Fedorin
242a9c209b
Handle replies in EventEntry
2021-07-23 14:34:11 -07:00
RMidhunSuresh
3aeb0c4d98
Indicate if no member found
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-07-21 18:34:55 +05:30
Danila Fedorin
46215b3c51
Add the ability to reply
2021-07-20 12:53:31 -07:00
Danila Fedorin
800b4785d1
Accomodate in_reply_to relation shape
2021-07-20 12:17:44 -07:00
RMidhunSuresh
05f05bb577
Add method to get member from storage
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-07-19 19:36:09 +05:30
Danila Fedorin
c9e937c41c
Add redundancy to prevent stored nulls from causing errors.
2021-07-17 13:29:20 -07:00
Danila Fedorin
ad453555b9
Avoid storing null for invite avatars.
2021-07-17 13:23:13 -07:00
RMidhunSuresh
436e87578e
Initialize prop in constructor
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-07-16 17:08:18 +05:30
RMidhunSuresh
e406aa6e45
Add jsdoc for powerlevels
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-07-16 17:08:18 +05:30
RMidhunSuresh
2502c4024a
Fix broken tests
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-07-16 17:08:18 +05:30
RMidhunSuresh
8e39aed4b6
Ensure that power levels are loaded only once
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-07-16 17:08:18 +05:30
RMidhunSuresh
14c00f50fc
Make loadPowerLevels private
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-07-16 17:08:18 +05:30
RMidhunSuresh
22fab3761a
Remove timeline reader and only use roomState
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-07-16 17:08:18 +05:30
RMidhunSuresh
8a976ef24b
Make powerLevels observable
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-07-16 17:08:18 +05:30
RMidhunSuresh
11eb9c7783
Use set instead of add in memberlist
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-07-16 17:08:18 +05:30
RMidhunSuresh
cb5e598e95
Getter for powerlevel from room
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-07-16 17:08:18 +05:30
RMidhunSuresh
f7a6fbd901
Make getUserLevel() public
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-07-16 17:08:18 +05:30
Danila Fedorin
f7d6569154
Add a small comment to Invite.avatarColorId, too.
2021-06-30 15:21:11 -07:00
Danila Fedorin
b40f946b85
Add JSDoc to new Hero method
2021-06-30 15:15:08 -07:00
Danila Fedorin
ee1f1500e9
Roll back to using heroes for computing DM color
2021-06-30 15:07:40 -07:00
Danila Fedorin
d0f70cbdf9
Move avatar color ID computation into SummaryData
2021-06-29 18:01:08 -07:00
Danila Fedorin
dec0683145
Correctly color archived and invited rooms
2021-06-29 16:50:42 -07:00
Danila Fedorin
97854423c4
Ensure DM rooms have the same color in timeline and left panel.
2021-06-28 11:44:27 -07:00
Bruno Windels
09aba78803
Merge branch 'master' into room-info
2021-06-24 15:06:37 +00:00
Bruno Windels
575f3fa966
fix tests
2021-06-24 14:28:10 +02:00
Bruno Windels
299294daff
prevent re(d)action in left/kicked room
2021-06-24 14:24:22 +02:00
Bruno Windels
b148368d5b
test different keys do work still
2021-06-24 13:29:13 +02:00
Bruno Windels
668c0aff36
drop duplicate reactions in send queue, as last measure of defence
2021-06-24 13:25:58 +02:00
Bruno Windels
c46c330efb
prevent duplicate redactions from distorting reaction local echo
2021-06-24 13:14:54 +02:00
Bruno Windels
061f44f475
extract methods here
2021-06-24 12:56:23 +02:00
Bruno Windels
a4a7c23148
use pending re(d)action timestamp to have stable reaction sorting order
...
also move more logic into the matrix layer, from Reaction(s)ViewModel
to PendingAnnotation
2021-06-24 12:26:38 +02:00
Bruno Windels
52957beb82
don't encrypt reactions
2021-06-23 17:49:27 +02:00
Bruno Windels
e125599a47
prevent decryption result getting lost after reaction updates entry
2021-06-23 17:38:52 +02:00
Bruno Windels
616d701ebb
add test that redaction for non-sending event aborts it
2021-06-21 19:02:42 +02:00
Bruno Windels
0e750db9ae
write unit tests for (re)aggregating annotations in RelationWriter
2021-06-21 18:16:21 +02:00
Bruno Windels
d1345d0f83
write test for redaction in RelationWriter
2021-06-21 17:52:02 +02:00
Bruno Windels
11fba12083
add tests for remote reaction target being added after pending event
2021-06-18 15:09:14 +02:00
Bruno Windels
0703cf8915
cleanup
2021-06-18 15:06:49 +02:00
Bruno Windels
5bea8130f2
more timeline annotation tests
2021-06-18 14:39:54 +02:00
Bruno Windels
9f99cf4b1e
fix lint in tests
2021-06-18 11:52:09 +02:00
Bruno Windels
8092713faa
add tests for local echo of adding and removing reaction
2021-06-18 11:51:02 +02:00
Bruno Windels
70d64f38eb
spelling
2021-06-17 16:07:32 +02:00
Bruno Windels
cad884aa41
fix local redaction echo while already sending target
2021-06-17 16:07:09 +02:00
Bruno Windels
a77ef02677
cleanup
2021-06-17 10:12:45 +02:00
Bruno Windels
cbee498d41
a bit more brief
2021-06-17 10:03:32 +02:00
Bruno Windels
bf84b59e39
more accurate test name and also test >=
2021-06-17 09:59:24 +02:00
Bruno Windels
099f99a96b
check power levels to see if we can react
2021-06-17 09:41:25 +02:00
Bruno Windels
150f58a6b3
don't aggregate relations on redacted events
2021-06-16 18:00:50 +02:00
Bruno Windels
ce5409dc26
aggregate relations when seeing event target during back-pagination
2021-06-16 17:40:29 +02:00
Bruno Windels
9099a76f45
fix spelling in comment
2021-06-16 17:30:48 +02:00
Bruno Windels
bbcf0d2572
more local echo fixes for redacting a reaction + cleanup
2021-06-16 12:46:44 +02:00
Bruno Windels
4f10174e48
clarify comment
2021-06-16 10:28:17 +02:00
Bruno Windels
3b629622d9
need to keep pending count around if 0 or less for redaction local echo
...
also need to be able to tell the difference between no pending reactions
and redactions and the sum being 0 (having both a redaction and
reaction) so we keep isPending to true
2021-06-16 10:23:22 +02:00
Bruno Windels
e5c1094153
WIP
2021-06-15 19:06:41 +02:00
Bruno Windels
75ee509361
fix lint
2021-06-11 11:30:11 +02:00
Bruno Windels
757e08c62c
WIP 4
2021-06-10 18:29:10 +02:00
Bruno Windels
cb051ad161
WIP3
2021-06-09 16:52:30 +02:00
RMidhunSuresh
c6f3b1fbbe
Do not use private props from room summary
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
Bruno Windels
206d18f498
WIP2
2021-06-08 16:56:17 +02:00
Bruno Windels
2ebadb36c3
WIP
2021-06-08 13:20:55 +02:00
Bruno Windels
3e47877645
Merge branch 'master' into bwindels/reactions
2021-06-04 16:33:10 +02:00
Bruno Windels
33655ee37e
forgot to export class
2021-06-04 16:32:03 +02:00
Bruno Windels
7691b28503
prevent another race between sync and openTimeline
2021-06-04 16:28:08 +02:00
Bruno Windels
bb6905bdcd
don't assume localEntries exists, as load races with sync.afterSync
2021-06-04 16:05:28 +02:00
Bruno Windels
b7402ce43c
support local echo for adding a reaction
2021-06-04 15:34:44 +02:00
Bruno Windels
8bf160dfc0
handle sending relations to events that haven't been sent yet
2021-06-04 10:48:59 +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
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
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
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
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
7a96f84cab
also show redaction reason for redaction local echo
2021-06-02 12:17:09 +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