Bruno Windels
1795f58ba5
rename imports
2022-02-14 17:53:59 +01:00
Bruno Windels
4d82dd22b6
convert ViewModel to typescript
2022-02-14 17:50:17 +01:00
Eric Eastwood
dfed04166e
Fix missing reply text when message body is parsed as HTML in [linkedom
]( https://github.com/WebReflection/linkedom ) (SSR).
...
- [`linkedom`](https://github.com/WebReflection/linkedom ) is being used https://github.com/matrix-org/matrix-public-archive to server-side render (SSR) Hydrogen (`hydrogen-view-sdk`)
- This is being fixed by using a explicit HTML wrapper boilerplate with `DOMParser` to get a matching result in the browser and `linkedom`.
Currently `parseHTML` is only used for HTML content bodies in events. Events with replies have content bodies that look like `<mx-reply>Hello</mx-reply> What's up` so they're parsed as HTML to strip out the `<mx-reply>` part.
Before | After
--- | ---
![](https://user-images.githubusercontent.com/558581/153692011-2f0e7114-fcb4-481f-b217-49f461b1740a.png ) | ![](https://user-images.githubusercontent.com/558581/153692016-52582fdb-abd9-439d-9dce-3f04da6959db.png )
Before:
```js
// Browser (Chrome, Firefox)
new DOMParser().parseFromString(`<div>foo</div>`, "text/html").body.outerHTML;
// '<body><div>foo</div></body>'
// `linkedom` ❌
new DOMParser().parseFromString(`<div>foo</div>`, "text/html").body.outerHTML;
// '<body></body>'
```
After (consistent matching output):
```js
// Browser (Chrome, Firefox)
new DOMParser().parseFromString(`<!DOCTYPE html><html><body><div>foo</div></body></html>`, "text/html").body.outerHTML;
// '<body><div>foo</div></body>'
// `linkedom`
new DOMParser().parseFromString(`<!DOCTYPE html><html><body><div>foo</div></body></html>`, "text/html").body.outerHTML;
// '<body><div>foo</div></body>'
```
`linkedom` goal is to be close to the current DOM standard, but [not too close](https://github.com/WebReflection/linkedom#faq ). Focused on the streamlined cases for server-side rendering (SSR).
Here is some context around getting `DOMParser` to interpret things better. The conclusion was to only support the explicit standard cases with a `<html><body></body></html>` specified instead of adding the magic HTML document creation and massaging that the browser does.
- https://github.com/WebReflection/linkedom/issues/106
- https://github.com/WebReflection/linkedom/pull/108
---
Part of https://github.com/vector-im/hydrogen-web/pull/653 to support server-side rendering Hydrogen for the [`matrix-public-archive`](https://github.com/matrix-org/matrix-public-archive ) project.
2022-02-11 20:10:46 -06:00
Bruno Windels
9685ef4dd3
dont log summary valued, as they can contain PII
2022-02-11 18:39:37 +01:00
Bruno Windels
ea8f3e5a6a
remove argument that is already bound in BaseRoom, making decryption fail
2022-02-11 17:14:56 +01:00
Bruno Windels
57b1542688
use private topic field as public one got removed as not needed in view
2022-02-11 09:37:56 +01:00
Bruno Windels
175f869c83
fix lint
2022-02-10 20:07:27 +01:00
Bruno Windels
a442b4b009
Merge branch 'master' into bwindels/create-room
2022-02-10 20:05:40 +01:00
Bruno Windels
d65b25f084
also adjust m.direct if the room has already been replaced
2022-02-10 20:00:01 +01:00
Bruno Windels
2765f48a64
create user id array in m.direct if it doesn't exist already
2022-02-10 19:59:44 +01:00
Bruno Windels
d2008a336b
fix lint errors
2022-02-10 19:54:47 +01:00
Bruno Windels
ff46d382ac
adjust m.direct when creating a DM
2022-02-10 19:54:15 +01:00
Bruno Windels
3adb2c3254
fix ts errors
2022-02-10 16:44:40 +01:00
Bruno Windels
8526461d3c
split up create code into separate files
2022-02-10 16:43:32 +01:00
Bruno Windels
15eecbb463
cleanup
2022-02-10 16:28:44 +01:00
Bruno Windels
30c8ea29b2
fix bug where the wrong left panel tile is removed when accepting invite
...
because when comparing a tile to itself it wasn't returned 0
2022-02-10 16:27:32 +01:00
Bruno Windels
b0d790543a
push to navigation in SessionViewModel rather than RVO
2022-02-10 14:57:48 +01:00
Bruno Windels
2c1b29e637
remove logging
2022-02-10 14:39:41 +01:00
Bruno Windels
75bbde598d
also consider rooms without a name and just you and the other a DM
...
as we don't process m.direct account data yet
2022-02-10 14:39:18 +01:00
Bruno Windels
955a6bd6f9
styling for button in member details to open DM
2022-02-10 14:38:12 +01:00
Bruno Windels
147810864f
add support to set alias and federation flag in create room
2022-02-10 14:09:18 +01:00
Bruno Windels
4c0167ed74
don't show spinner in left panel when room creation fails
2022-02-10 11:19:43 +01:00
Bruno Windels
024a6c06aa
handle offline error nicer
2022-02-10 11:11:15 +01:00
Bruno Windels
b5536830d0
improve RoomBeingCreatedView, allow removing the roombeingcreated
2022-02-10 11:07:29 +01:00
Bruno Windels
20493f9e87
cleanup
2022-02-10 11:07:13 +01:00
Bruno Windels
e8c20c28b2
allow passing label into LoadingView
...
also doesn't need to be a template view, as it doesn't have bindings
or event handlers
2022-02-10 11:06:44 +01:00
Bruno Windels
f12841b2d3
better error handling in RoomBeingCreated
2022-02-10 11:06:20 +01:00
Bruno Windels
d6d1af13d0
rename RoomBeingCreated.localId to id
2022-02-10 11:03:52 +01:00
Bruno Windels
bbb1683dbf
fixup: login view styling
2022-02-10 09:40:42 +01:00
Bruno Windels
fed42f13ad
textarea styling
2022-02-10 09:40:30 +01:00
Bruno Windels
5f6308e7c4
fix homeserver field style in login view
2022-02-10 09:40:19 +01:00
Bruno Windels
74f7879cb6
fix unrelated bug: invite sorting order wasn't stable in left panel
...
as the timestamp is the same when you receive the invite during your
first sync
2022-02-10 09:40:03 +01:00
Bruno Windels
5c085efc10
create room view and view model
2022-02-09 19:02:51 +01:00
Bruno Windels
a1e14c4eec
rename to not have conflict between method name and instance of CreateRoomViewModel
2022-02-09 19:02:18 +01:00
Bruno Windels
4b1be30dc0
improve form-row classes so they can work with create room form
2022-02-09 19:01:35 +01:00
Bruno Windels
8523f6feaf
setup navigation for create room form
2022-02-09 19:00:41 +01:00
Bruno Windels
83d2b58bad
add avatar support to creating room
2022-02-09 19:00:00 +01:00
Bruno Windels
afe8e17a6f
remove debugging code
2022-02-08 17:00:06 +01:00
Bruno Windels
743f2270e5
have a single tile view that supports all 3 view models
2022-02-08 16:22:44 +01:00
Bruno Windels
5325b0b466
cleanup logging
2022-02-08 14:58:29 +01:00
Bruno Windels
d7b024eac1
unrelated fix: encode user name in matrix.to link
2022-02-08 14:35:14 +01:00
Bruno Windels
45c8e3a793
mark room as DM based on synced state events,rather than just inviteData
...
as that does not work for rooms we create ourselves
2022-02-08 14:34:34 +01:00
Bruno Windels
e04463c143
WIP for finding DM room
2022-02-07 18:58:53 +01:00
Bruno Windels
26fa2a5d60
add option
2022-02-07 18:58:43 +01:00
Bruno Windels
e1fbd1242e
WIP 4
2022-02-07 16:30:44 +01:00
Bruno Windels
0bb3cfcfad
WIP3
2022-02-04 17:49:10 +01:00
Bruno Windels
3ff39a9549
Merge pull request #661 from vector-im/sdk-additions
...
Export more code from SDK
2022-02-04 17:43:23 +01:00
RMidhunSuresh
4a0db9f984
Add required exports
2022-02-04 18:28:17 +05:30
RMidhunSuresh
28931f4103
Use async/await
2022-02-04 17:48:42 +05:30
RMidhunSuresh
f7f32ac806
responseCodeReject may not exist
2022-02-04 17:39:52 +05:30
RMidhunSuresh
a163cee18d
Remove dead imports
2022-02-04 17:25:30 +05:30
RMidhunSuresh
0828ac12b1
Fix params
2022-02-04 17:25:15 +05:30
RMidhunSuresh
b59f916824
Merge branch 'registration' of github.com:vector-im/hydrogen-web into registration
2022-02-04 17:16:32 +05:30
R Midhun Suresh
2ac63e78ca
mark method as internal
...
Co-authored-by: Bruno Windels <bruno@windels.cloud>
2022-02-04 17:16:15 +05:30
RMidhunSuresh
028b96e4c5
Let type also be undefined
2022-02-04 17:11:33 +05:30
RMidhunSuresh
22d5505a2b
Create registration stage in Registration itself
2022-02-04 16:50:22 +05:30
RMidhunSuresh
e66549a067
Remove dead code
2022-02-04 16:40:49 +05:30
RMidhunSuresh
e8c480426a
Remove error code
2022-02-04 16:37:43 +05:30
RMidhunSuresh
891375a885
Rename allowerErrors -> allowedStatusCodes
2022-02-04 16:35:47 +05:30
RMidhunSuresh
32af7e6f09
Make more changes
...
- make setter a method
- lazily create promise
2022-02-04 16:23:39 +05:30
Bruno Windels
0b04612d6c
WIP2
2022-02-04 11:16:58 +01:00
RMidhunSuresh
3d8b9cce41
Fix responseCode in Request
2022-02-04 15:41:37 +05:30
Bruno Windels
bc09ede09f
WIP
2022-02-03 17:57:35 +01:00
RMidhunSuresh
b6e1d4a7d5
Implement responseCode()
2022-02-03 19:41:14 +05:30
RMidhunSuresh
89a97537b0
Make methods private + some props readonly
2022-02-03 19:41:14 +05:30
RMidhunSuresh
8a3c0afba6
Fix incorrect types
2022-02-03 19:41:11 +05:30
RMidhunSuresh
0ad0ecfcc2
Check response code instead of existence of props
2022-02-03 19:40:25 +05:30
RMidhunSuresh
c4894f2c24
completed is not always present
2022-02-03 19:40:25 +05:30
RMidhunSuresh
e64f4ad7b2
Refactor code
...
- Move all code that does /register to Registration.ts
- RegistrationStage only deals with the generation of auth data
- Change API so that undefined is returned instead of string when
registration is over
2022-02-03 19:40:25 +05:30
R Midhun Suresh
2aad5546bf
No need for Object.assign here either
...
Co-authored-by: Bruno Windels <brunow@matrix.org>
2022-02-03 19:40:25 +05:30
RMidhunSuresh
7bacbec5e9
Remove type directory
2022-02-03 19:40:25 +05:30
RMidhunSuresh
e13040a49e
Don't mutate flows
2022-02-03 19:40:25 +05:30
R Midhun Suresh
30cb9f6d15
Use includes instead of elaborate find
...
Co-authored-by: Bruno Windels <brunow@matrix.org>
2022-02-03 19:40:25 +05:30
RMidhunSuresh
a351a185a0
Give proper names
2022-02-03 19:40:25 +05:30
RMidhunSuresh
fe0add01ee
Use union of types for RegistrationResponse
2022-02-03 19:40:25 +05:30
RMidhunSuresh
a249a1b2b5
Implement flow seclector
2022-02-03 19:40:25 +05:30
RMidhunSuresh
6798a5e429
Move types to types.ts
2022-02-03 19:40:25 +05:30
RMidhunSuresh
3a67da8830
Refactor type
...
- Change name
- Move union type down
2022-02-03 19:40:25 +05:30
RMidhunSuresh
1d4b079d0c
Type RegistrationResponse
2022-02-03 19:40:25 +05:30
RMidhunSuresh
49ade61ef6
Fill in ts types + change names
2022-02-03 19:40:25 +05:30
RMidhunSuresh
b482d478b4
Add a tos getter
2022-02-03 19:40:25 +05:30
RMidhunSuresh
ac7108b882
Throw error instead of returning it
2022-02-03 19:40:25 +05:30
RMidhunSuresh
7bb7189c6a
No need for this export
2022-02-03 19:40:25 +05:30
RMidhunSuresh
6eba60bd75
Use typescript style that was agreed on earlier
2022-02-03 19:40:25 +05:30
RMidhunSuresh
5de1fc1453
Remove unnecessary getters
2022-02-03 19:40:25 +05:30
RMidhunSuresh
2f3865d8cc
firstStage should be a local variable
2022-02-03 19:40:25 +05:30
RMidhunSuresh
2d4c106542
REFACTOR: Inline method
2022-02-03 19:40:25 +05:30
RMidhunSuresh
a91ba4370d
Change type to show that username is optional
2022-02-03 19:40:25 +05:30
RMidhunSuresh
550a560f40
Remove space
2022-02-03 19:40:25 +05:30
RMidhunSuresh
5f11790f6b
Object.assign is overkill here
2022-02-03 19:40:25 +05:30
RMidhunSuresh
e8dbbd876c
Give default values to parameters
2022-02-03 19:40:25 +05:30
RMidhunSuresh
755f934eb2
No need to explicitly pass in inhibitLogin
2022-02-03 19:40:25 +05:30
RMidhunSuresh
5e93e048ab
Don't cache GET requests
2022-02-03 19:40:25 +05:30
RMidhunSuresh
bb6a885116
Specify what errors are ignored in options
2022-02-03 19:40:25 +05:30
RMidhunSuresh
420c12f202
Copy over username only if it exists
2022-02-03 19:40:25 +05:30
RMidhunSuresh
792d5c62c5
Return username when registration is completed
2022-02-03 19:40:25 +05:30
RMidhunSuresh
fa2e2bc8f3
Allow register without providing username
2022-02-03 19:40:25 +05:30
RMidhunSuresh
170d7a5e55
Add startRegistration method
2022-02-03 19:40:25 +05:30
RMidhunSuresh
8ab8726b8f
Implement m.login.terms stage
2022-02-03 19:40:25 +05:30
RMidhunSuresh
18e2fc1089
Pass in params to BaseRegistrationStage
2022-02-03 19:40:25 +05:30