Bruno Windels
1a61752ace
process state events separately from timeline events
2020-08-21 14:35:23 +02:00
Bruno Windels
5837aed346
remove obsolete comment
2020-08-21 14:27:16 +02:00
Bruno Windels
d3ea8c747a
ignore own messages for unread state, and don't set unread while open
2020-08-21 14:26:51 +02:00
Bruno Windels
879c4ff951
default for all flags should be false
2020-08-21 14:11:53 +02:00
Bruno Windels
2742162c8e
only clear unread if needed
2020-08-21 14:11:42 +02:00
Bruno Windels
00e20d2088
take null timestamps into account
2020-08-21 14:11:26 +02:00
Bruno Windels
4969009b2b
default should be false, so comparison in the sorter is stable
2020-08-21 14:10:53 +02:00
Bruno Windels
5d1bc61f61
don't open a room when already open
2020-08-21 13:45:55 +02:00
Bruno Windels
4fb3010676
only set unread for incremental syncs
2020-08-21 13:45:38 +02:00
Bruno Windels
eae5bc4230
sort unread rooms first, then on last message timestamp, then alphabet.
2020-08-21 11:58:05 +02:00
Bruno Windels
dbf5e59d87
clear unread state 2s after opening the room
2020-08-21 11:57:49 +02:00
Bruno Windels
89392434ad
render unread rooms as bold
2020-08-21 11:57:38 +02:00
Bruno Windels
7458465ef6
expose props on Room
2020-08-21 11:56:45 +02:00
Bruno Windels
739d74bf9c
add method to clear unread state
2020-08-21 11:56:36 +02:00
Bruno Windels
4419b3366e
store isUnread and lastMessageTimestamp
2020-08-21 11:55:47 +02:00
Bruno Windels
53720f56df
some cleanup
2020-08-21 11:55:25 +02:00
Bruno Windels
f0d0dbb30f
fix member event reporting
2020-08-20 17:43:51 +02:00
Bruno Windels
4fefe94302
render avatar in room header
2020-08-20 17:33:08 +02:00
Bruno Windels
00718c582a
render avatar img in room list
2020-08-20 17:32:55 +02:00
Bruno Windels
cff39019cb
extract renderAvatar
...
and use avatarTitle instead of sender for img title
2020-08-20 17:32:18 +02:00
Bruno Windels
7992607442
also store notif counts while at it
2020-08-20 17:07:02 +02:00
Bruno Windels
da947fa0d0
store room avatar url in summary
2020-08-20 17:02:51 +02:00
Bruno Windels
f5acee02be
add comment why we do things in this order
2020-08-20 16:20:35 +02:00
Bruno Windels
59bdd2b015
render avatar on message tiles
2020-08-20 16:03:52 +02:00
Bruno Windels
225d46fad6
prepare styles to have other images (like avatar) in timeline
2020-08-20 16:03:26 +02:00
Bruno Windels
5d0ee21267
move mxcUrl functions to media repo class
2020-08-20 15:40:43 +02:00
Bruno Windels
843f4fa0f7
fix flood issue when back-filling isn't available
2020-08-20 15:28:22 +02:00
Bruno Windels
9e8d1ed290
better naming
2020-08-20 15:24:39 +02:00
Bruno Windels
036b305c96
use display name for room name change tiles
2020-08-20 15:24:16 +02:00
Bruno Windels
fafdf669db
use prev_content from later events before state
2020-08-20 15:23:56 +02:00
Bruno Windels
830c300102
fix typo that broke the txn
2020-08-20 15:23:29 +02:00
Bruno Windels
514d1d9579
first draft of adding profile info while filling gap
2020-08-20 14:39:03 +02:00
Bruno Windels
229502ca43
remove logging
2020-08-20 10:48:59 +02:00
Bruno Windels
4b275529f7
fixup: writing member info during sync
2020-08-20 10:47:14 +02:00
Bruno Windels
d31a1b5fff
render display name in timeline
2020-08-20 10:26:28 +02:00
Bruno Windels
41c00ce44a
write display name and avatar on event during sync
2020-08-20 10:26:08 +02:00
Bruno Windels
ba3a4ab8b2
process state events in the timeline together with other timeline events
...
so member info gets overwritten after all the previous events
have already been written
2020-08-20 09:39:19 +02:00
Bruno Windels
fe7cc08287
add _selectWhile with proper "while" semantics
...
the existing _selectWhile method was more like _selectUntil,
which is what we want for _selectLimit but not for selectWhile(Reverse)
The changes we had made before also broke _selectLimit as it would
look at the results length before the value got added so you
always got 1 value more than requested, breaking sync.
2020-08-19 18:25:49 +02:00
Bruno Windels
79363ed1d7
use optional chaining
2020-08-19 18:25:38 +02:00
Bruno Windels
a90cebcabb
document access levels
2020-08-19 16:58:28 +02:00
Bruno Windels
113c9e13b3
fix typo
2020-08-19 16:58:19 +02:00
Bruno Windels
faaabd1837
fix changed member scenario (no need to fetch from storage) and errors
2020-08-19 16:51:16 +02:00
Bruno Windels
4144b0b281
move memberlist load code out of Room
2020-08-19 16:44:09 +02:00
Bruno Windels
f7314990e4
add copyright header
2020-08-19 16:30:05 +02:00
Bruno Windels
463b9b745e
base impl of member list
2020-08-19 16:29:54 +02:00
Bruno Windels
f84c9d51b4
store last pagination token
2020-08-19 16:29:08 +02:00
Bruno Windels
d08297d1e0
move RoomMembers to own dir
2020-08-19 16:28:09 +02:00
Bruno Windels
cc1f35a074
fix c/p error
2020-08-19 16:14:10 +02:00
Bruno Windels
6abdcd6b58
finish draft of member list loading method
2020-08-19 16:13:47 +02:00
Bruno Windels
9edd1bb0bb
implement loading all members
2020-08-19 16:13:30 +02:00
Bruno Windels
bfc5eb3ee5
return changed members from sync writer
...
we will use it to handle race between /sync and /members
and to update the member list if it loaded
2020-08-19 16:12:49 +02:00
Bruno Windels
a5595570f9
members hs api call
2020-08-19 16:11:33 +02:00
Bruno Windels
2ad9b17ad7
no need to update members, as all the info is in the member event
...
as we won't store deviceTrackingStatus in the member
2020-08-19 16:10:07 +02:00
Bruno Windels
5ad7b74b2b
keep string key since we have to support IE11
2020-08-19 16:08:42 +02:00
Bruno Windels
9ff4f3839c
Merge branch 'master' into bwindels/memberlist
2020-08-19 12:13:38 +02:00
Bruno Windels
5898177f0b
continuation can change, so bind to it
2020-08-19 12:07:10 +02:00
Bruno Windels
2526198251
replace usage of readPath with ?.
2020-08-19 11:36:43 +02:00
Bruno Windels
82762823e3
use normal sized avatar for room header
2020-08-19 11:02:47 +02:00
Bruno Windels
b2a01ba860
timeline spacing and font-size tweaking
2020-08-19 11:02:27 +02:00
Bruno Windels
fcf7052217
forgot to add header here before
2020-08-19 10:28:39 +02:00
Bruno Windels
614a00b741
don't continue messages from more than 5min ago
2020-08-19 10:28:09 +02:00
Bruno Windels
fad728069a
don't show date & time on pending events
2020-08-19 10:27:27 +02:00
Bruno Windels
9d260c692b
tweak font-sizes to what element web has
2020-08-19 10:26:52 +02:00
Bruno Windels
cc4c9d7893
Improve IDB error reporting
...
Hope this can help with
https://github.com/vector-im/hydrogen-web/issues/50
2020-08-18 17:27:40 +02:00
Bruno Windels
7291cac834
yield for browser to render before checking content height
2020-08-17 17:58:39 +02:00
Bruno Windels
4044ac56c5
actually check the promise
2020-08-17 17:58:30 +02:00
Bruno Windels
df8d884d91
append all list items at once for initial render
2020-08-17 17:58:04 +02:00
Bruno Windels
1c779cf95c
render encrypted tiles as such so we don't fetch the whole history
2020-08-17 17:41:57 +02:00
Bruno Windels
0b1d9bf25e
unused now
2020-08-17 17:41:49 +02:00
Bruno Windels
37597e2acb
mark fragment in storage when start of timeline is reached
...
so we don't keep looping to fetch more messages
when scrolled all the way up
2020-08-17 17:41:10 +02:00
Bruno Windels
b6cbb03edd
keep filling gaps while viewport not filled or new content < 100px
2020-08-17 16:34:58 +02:00
Bruno Windels
08de7c3569
loading screen while loading timeline
...
so we can set timelineVM directly to TimelineList
2020-08-17 16:34:25 +02:00
Bruno Windels
5ae4a1aae3
increase offset to start back-filling
2020-08-17 15:22:55 +02:00
Bruno Windels
2cfd38379f
change looks of gap tile as it's auto-loaded now
2020-08-17 15:22:39 +02:00
Bruno Windels
56efd7eee0
don't load timeline past gaps
2020-08-17 15:22:25 +02:00
Bruno Windels
1e4f331989
fill top gap instead of loading more events from storage
2020-08-17 15:13:12 +02:00
Bruno Windels
cf0af775e3
make SimpleTile inherit from ViewModel
...
to use same update mechanism and have viewmodel infra available for tile
2020-08-17 15:11:39 +02:00
Bruno Windels
9745c58144
use readPath in ImageTile
2020-08-17 14:20:54 +02:00
Bruno Windels
0d3ab21044
Merge pull request #19 from vector-im/bwindels/small-bits
...
Various small bits
2020-08-17 12:15:28 +00:00
Bruno Windels
bbd5217fdf
Merge pull request #18 from vector-im/bwindels/ignore-empty-timelines
...
ignore rooms with empty timelines during initial sync
2020-08-17 12:14:46 +00:00
Bruno Windels
59588dc8b5
ignore rooms with empty timelines during initial sync
2020-08-17 14:13:23 +02:00
Bruno Windels
306309c4f8
wrap error and expose room id
...
this makes it easier to track down a (storage) error to a room
2020-08-17 10:48:00 +02:00
Bruno Windels
b5e7131050
only use 1 letter for avatar initial
2020-08-17 10:47:47 +02:00
Bruno Windels
404e6f8b87
make alphabetical sort order stable
2020-08-17 10:47:27 +02:00
Bruno Windels
70e6515b5c
dont crash on m.image without url
2020-08-17 10:29:29 +02:00
Bruno Windels
bab1178790
style login page
2020-08-14 14:49:22 +02:00
Bruno Windels
c12ecd6cc1
style session picker
2020-08-14 14:49:15 +02:00
Bruno Windels
19e5d310e0
move avatar one level lower because we'll need it in the session picker
2020-08-14 14:33:13 +02:00
Bruno Windels
61801ee2cd
add send button to composer
2020-08-13 18:10:45 +02:00
Bruno Windels
bf35cfc9fd
make spinner look slightly better in IE
2020-08-13 17:59:49 +02:00
Bruno Windels
84d4584302
switch view gallery to element theme
2020-08-13 17:59:36 +02:00
Bruno Windels
d386343d5c
adjust spacing, etc in timeline
2020-08-13 17:58:56 +02:00
Bruno Windels
44cc691c79
add avatar and sender user colors
2020-08-13 12:41:00 +02:00
Bruno Windels
d33e7b2a8b
basic element theme colors
2020-08-13 12:40:30 +02:00
Bruno Windels
68574715dc
style active room
2020-08-12 17:49:39 +02:00
Bruno Windels
5aacf85166
mark room tile as active when clicked
2020-08-12 17:40:41 +02:00
Bruno Windels
7f50e3d137
allow overriding the "emit change" mechanism in ViewModel
...
so view models that should send updates through their collection
can still use the same "emitChange" method on ViewModel
2020-08-12 17:39:11 +02:00
Bruno Windels
fbf72b8825
bind key for spontaneous updates in MappedMap
...
so we just have to pass in the params
2020-08-12 17:38:40 +02:00
Bruno Windels
cb10d40c3a
Revert "use intrinsic aspect-ratio supported by chrome and firefox (although not safari)"
...
This reverts commit 0e5ad9805a
.
It does not seem to work anymore in FF & chrome (the tile grows after the image is loaded)
and this won't work in IE11 anyways
2020-08-12 16:47:57 +02:00
Bruno Windels
d7657b519a
add element theme (only some color changes + Inter font for now)
2020-08-12 16:41:03 +02:00
Bruno Windels
c6f38a4614
missing rename
2020-08-12 16:40:47 +02:00
Bruno Windels
e1a5c362dc
add theme assets to offline definition
2020-08-12 16:40:28 +02:00
Bruno Windels
211abd9269
move emoji font collection to own font definition
2020-08-12 16:32:49 +02:00
Bruno Windels
695bcb2da3
move speech bubble alignment to theme
2020-08-12 16:31:58 +02:00
Bruno Windels
d7c1dc8a38
make fields disabled in loading state in gallery
2020-08-12 11:52:18 +02:00
Bruno Windels
be9e476874
extract theme from current styling
2020-08-12 11:52:03 +02:00
Bruno Windels
23d96b554a
make theme directory
...
+ readme of ~what should go in a theme
2020-08-12 11:51:21 +02:00
Bruno Windels
5546460510
more brawl -> hydrogen renaming
2020-08-12 11:42:42 +02:00
Bruno Windels
eb92b9a086
Disable rubberband scrolling for IE11
2020-08-07 18:15:17 +01:00
Bruno Windels
e054dfb623
Merge branch 'master' into bwindels/legacy-css
2020-08-07 17:03:45 +01:00
Bruno Windels
fdc7f60f4d
Build legacy bundle from same entry point as normal build
...
as the plan is to only use different CSS for IE11, but the same view code
2020-08-07 15:50:18 +01:00
Bruno Windels
a0c8d147c3
Use parentNode, parentElement is not supported on IE11
2020-08-07 15:07:44 +01:00
Bruno Windels
b1dd3933e2
WIP
2020-08-07 11:16:46 +01:00
Bruno Windels
a7acb0278d
Element.remove polyfill
2020-08-07 11:14:07 +01:00
Bruno Windels
73c0a92377
Add .closest polyfill
2020-08-06 10:38:38 +01:00
Bruno Windels
1699600ffc
fix test
2020-08-05 19:06:54 +02:00
Bruno Windels
3154b047a6
Merge branch 'bwindels/ie11' of github.com:vector-im/hydrogen-web into bwindels/ie11
2020-08-05 19:02:42 +02:00
Bruno Windels
d0ba894e2d
apply new license headers in new code
2020-08-05 18:59:16 +02:00
Bruno Windels
45bd49861b
Add build for IE 11
2020-08-05 18:56:06 +02:00
Bruno Windels
5ddc02ebc8
XHR request support for legacy browsers
2020-08-05 18:56:06 +02:00
Bruno Windels
e8e9740521
Move timeout to fetch, as XHR has native timeout support
2020-08-05 18:56:06 +02:00
Bruno Windels
5c50a48eb5
Add build for IE 11
2020-08-05 16:47:48 +00:00
Bruno Windels
00a85697ab
add license header in all source files
2020-08-05 18:38:55 +02:00
Bruno Windels
69142909d9
XHR request support for legacy browsers
2020-08-05 15:37:37 +00:00
Bruno Windels
b26bc69042
Move timeout to fetch, as XHR has native timeout support
2020-08-05 15:36:44 +00:00
Bruno Windels
f5d3092031
WIP
2020-06-26 23:26:24 +02:00
Bruno Windels
e2c8b5e595
pass vm field to emitChange
2020-06-24 22:43:29 +02:00
Bruno Windels
9712b397ce
add TODO comment
2020-05-26 10:31:23 +02:00
Bruno Windels
0e5ad9805a
use intrinsic aspect-ratio supported by chrome and firefox (although not safari)
2020-05-13 10:20:28 +02:00
Bruno Windels
1ec2543467
fix image aspect ratio when scaling, again
...
also when image hasn't loaded yet to prevent scroll position jumps
2020-05-10 11:56:05 +02:00
Bruno Windels
174b0b7d52
disable pull to refresh on android
2020-05-10 10:00:13 +02:00
Bruno Windels
d79e34e450
fix image height scaling when full width doesn't fit on screen
2020-05-10 09:59:51 +02:00
Bruno Windels
df08ac216d
prevent images from growing larger than container
2020-05-09 21:22:30 +02:00
Bruno Windels
d6882f075a
don't let long status messages create overflow
2020-05-09 21:22:09 +02:00
Bruno Windels
2b17d0f691
spell height correctly
2020-05-09 21:21:55 +02:00
Bruno Windels
7f221cda65
show images intimeline
2020-05-09 20:02:08 +02:00
Bruno Windels
426dd726e7
default to true
2020-05-08 09:31:41 +02:00
Bruno Windels
5aee3df7fe
fix SessionPickerItemView not updating
2020-05-08 09:12:33 +02:00
Bruno Windels
c55a197303
pass options to parent in LoginViewModel
2020-05-07 19:17:15 +02:00
Bruno Windels
f56b96b0ff
add some ideas for relations
2020-05-07 19:14:53 +02:00
Bruno Windels
f9c0b4b53e
add logging in case #45 would happen again
2020-05-07 19:14:30 +02:00
Bruno Windels
6b453c1ec4
we need to start when online actually, so invert
2020-05-07 18:46:45 +02:00
Bruno Windels
24cb9e3f5c
only increment sent counter after successful send
...
otherwise the message doesn't get sent after coming back online
2020-05-07 18:46:16 +02:00
Bruno Windels
b65da9b8a9
display sync errors in status bar
2020-05-07 00:05:21 +02:00
Bruno Windels
52e2d3203e
also make filter request interruptable
2020-05-07 00:04:41 +02:00
Bruno Windels
cc19063c79
set timeout on /sync request
...
as long running requests run higher risk of getting wedged
2020-05-06 23:50:12 +02:00
Bruno Windels
06fc3101e8
make login view enabled again if load view is not busy anymore
2020-05-06 23:44:52 +02:00
Bruno Windels
e17fc57d9c
fix c/p error in disposables
2020-05-06 23:31:36 +02:00
Bruno Windels
abc99c2f0b
fix svg error in spinner
2020-05-06 23:31:22 +02:00
Bruno Windels
2010704f14
fix only reconnecting the first time
2020-05-06 20:58:48 +02:00
Bruno Windels
f8f13f54be
fix timeouts not working
...
and also not being handled in the Reconnector
2020-05-06 19:38:33 +02:00
Bruno Windels
54502c906f
make disposeTracked suitable to reassign member
2020-05-05 23:19:02 +02:00
Bruno Windels
d0f09c5334
add status bar to view gallery for design
2020-05-05 23:18:44 +02:00
Bruno Windels
22821af346
css changes for status bar
2020-05-05 23:18:31 +02:00
Bruno Windels
0623c1c665
subViews is in TemplateView
2020-05-05 23:17:48 +02:00
Bruno Windels
c4b17e4be6
cleanup SessionViewModel, use ViewModel dispose infrastructure
2020-05-05 23:17:27 +02:00
Bruno Windels
3adc609e07
implement session status bar, with feedback on connection status
2020-05-05 23:16:51 +02:00
Bruno Windels
b0e59c30dd
correctly pass options to ViewModel ctor
2020-05-05 23:14:58 +02:00
Bruno Windels
0eefc88fe3
waitForRetry doesn't reject when aborted
2020-05-05 23:13:41 +02:00
Bruno Windels
8e9c76c26b
options is the 5th arg
2020-05-05 23:13:05 +02:00
Bruno Windels
4de29779c7
also abort timeout timer when response is rejected
2020-05-05 23:12:46 +02:00
Bruno Windels
4ffaa82435
add interval to clock
2020-05-05 23:12:14 +02:00
Bruno Windels
f90b435362
No need for Offline state if we're always in Waiting really
2020-05-04 23:42:34 +02:00
Bruno Windels
d70a57a7c9
remove support for observablevalues from templateview
...
it's not used, and so params haven't been standardized
trying to unify it, it messes up overriding update in RoomView
that extends it to set the timelineViewModel upon update.
2020-05-04 22:24:49 +02:00
Bruno Windels
d6645cbba9
null guard if list was never set
2020-05-04 22:24:10 +02:00
Bruno Windels
d7a8b1616a
use t.view for room sub views
...
also move composer to own vm
2020-05-04 22:23:43 +02:00
Bruno Windels
28bed56b5a
prevent closing more than once
2020-05-04 22:21:56 +02:00
Bruno Windels
1fa14a99e9
correctly wait for catchup sync
2020-05-04 19:38:23 +02:00
Bruno Windels
225fe873be
show session load view when picking a session
2020-05-04 19:38:03 +02:00
Bruno Windels
3dde23fc4b
dispose viewmodels from TemplateView
2020-05-04 19:24:27 +02:00
Bruno Windels
1ef564bdb0
cleanup
2020-05-04 19:24:20 +02:00
Bruno Windels
cc87e35f23
use ViewModel super class for all view models that need binding
2020-05-04 19:23:11 +02:00
Bruno Windels
d91ab5355c
support svg namespace, fix spinner
2020-05-03 01:08:53 +02:00
Bruno Windels
d69987b426
make view gallery of views in different states
2020-04-30 18:28:21 +02:00
Bruno Windels
d3f7fb5089
prototype how i18n would look like
2020-04-30 18:27:59 +02:00
Bruno Windels
ceec8937ef
apply template view api changes
2020-04-30 18:27:21 +02:00
Bruno Windels
cdf051f19b
api changes
2020-04-29 19:16:52 +02:00
Bruno Windels
2c8c1eb767
move el with the publics
2020-04-29 19:12:48 +02:00
Bruno Windels
6a9315e70a
do what we said in the comment
2020-04-29 19:12:12 +02:00
Bruno Windels
f4bb609ab6
notes
2020-04-29 10:10:33 +02:00
Bruno Windels
8bde627cdb
more WIP
2020-04-29 10:10:20 +02:00
Bruno Windels
37c602f7d2
rename Template to TemplateView, as it is a view now.
2020-04-29 10:04:40 +02:00
Bruno Windels
2008cf74f1
Template becomes a view
2020-04-29 10:01:08 +02:00
Bruno Windels
657ec9aa62
move loading view state to own view model, so we're more free how to show it, and we can better reuse it
2020-04-23 09:06:04 +02:00
Bruno Windels
acc511e69f
extract loading into a sub viewmodel
...
to show the loading in a separate view
2020-04-22 21:53:55 +02:00
Bruno Windels
b2954fd774
extract loadLabel logic to reuse in SessionPickerViewModel
2020-04-22 21:53:37 +02:00
Bruno Windels
0424ffe231
disable this for now as sync is not an EventEmitter anymore
2020-04-22 20:53:57 +02:00
Bruno Windels
e080bf28a7
expose root view model as global variable for console inspecting
2020-04-22 20:53:38 +02:00
Bruno Windels
e0799181d9
show error when mount() fails in SwitchView
2020-04-22 20:53:18 +02:00
Bruno Windels
449262e3c1
adjust ctor of SessionViewModel to accept sessionContainer now
2020-04-22 20:52:56 +02:00
Bruno Windels
e37101210c
adjust LoginView(Model) further to showing loading status in place
2020-04-22 20:52:28 +02:00
Bruno Windels
96aa4f83b9
remove loading section in BrawlView
2020-04-22 20:49:49 +02:00
Bruno Windels
a19e541e1e
less http specific
2020-04-22 20:49:21 +02:00
Bruno Windels
3359c6950f
typo (this made the loadStatus undefined :/)
2020-04-22 20:49:03 +02:00
Bruno Windels
08b1c02af7
remove start value, can be hardcoded for now
...
also fix params in wrong order this way
2020-04-22 20:48:49 +02:00
Bruno Windels
f826258c75
null doesn't set queryParams to {} here, so revert explicitly
2020-04-22 20:47:53 +02:00
Bruno Windels
174fd3ea4a
don't assume options
2020-04-22 20:47:46 +02:00
Bruno Windels
3f840d9d33
simple unit test for hsApi
2020-04-22 20:47:31 +02:00
Bruno Windels
277c8af628
Headers is a DOM specific class, use Map instead in HomeServerApi
2020-04-22 20:46:47 +02:00
Bruno Windels
c95981a35d
remove unused code
2020-04-20 23:10:33 +02:00