Skip to content
This repository has been archived by the owner on Sep 11, 2024. It is now read-only.

Patch: "Reloading the registration page should warn about data loss" #8377

Merged
merged 15 commits into from
Apr 29, 2022

Conversation

yaya-usman
Copy link
Contributor

@yaya-usman yaya-usman commented Apr 20, 2022

Fixes: vector-im/element-web#21819

Issue reported by @t3chguy

Signed-off-by: Yaya Usman yaya-usman@users.noreply.github.com

After:
Capture001

Type: defect


Here's what your changelog entry will look like:

🐛 Bug Fixes

  • Patch: "Reloading the registration page should warn about data loss" (#8377). Contributed by @yaya-usman.

Preview: https://pr8377--matrix-react-sdk.netlify.app
⚠️ Do you trust the author of this PR? Maybe this build will steal your keys or give you malware. Exercise caution. Use test accounts.

@yaya-usman yaya-usman requested a review from a team as a code owner April 20, 2022 18:49
@github-actions github-actions bot added the T-Defect Bugs, crashes, hangs, vulnerabilities, or other reported problems label Apr 20, 2022
src/components/views/auth/AuthBody.tsx Outdated Show resolved Hide resolved
src/components/views/auth/AuthBody.tsx Outdated Show resolved Hide resolved
src/components/views/auth/AuthBody.tsx Outdated Show resolved Hide resolved
@codecov
Copy link

codecov bot commented Apr 20, 2022

Codecov Report

Merging #8377 (ac39d61) into develop (fddbc42) will decrease coverage by 0.62%.
The diff coverage is 57.14%.

❗ Current head ac39d61 differs from pull request most recent head 736eae1. Consider uploading reports for the commit 736eae1 to get more accurate results

@@             Coverage Diff             @@
##           develop    #8377      +/-   ##
===========================================
- Coverage    30.77%   30.15%   -0.63%     
===========================================
  Files          893      884       -9     
  Lines        50765    50302     -463     
  Branches     12921    12809     -112     
===========================================
- Hits         15623    15167     -456     
+ Misses       35142    35135       -7     
Impacted Files Coverage Δ
src/components/views/auth/AuthBody.tsx 66.66% <57.14%> (-33.34%) ⬇️
...list/algorithms/tag-sorting/AlphabeticAlgorithm.ts 0.00% <0.00%> (-100.00%) ⬇️
src/utils/colour.ts 0.00% <0.00%> (-94.12%) ⬇️
...c/stores/room-list/algorithms/tag-sorting/index.ts 14.28% <0.00%> (-71.43%) ⬇️
src/components/views/elements/FacePile.tsx 10.00% <0.00%> (-67.78%) ⬇️
...list/algorithms/list-ordering/OrderingAlgorithm.ts 0.00% <0.00%> (-57.15%) ⬇️
...stores/room-list/algorithms/list-ordering/index.ts 14.28% <0.00%> (-57.15%) ⬇️
src/stores/widgets/WidgetMessagingStore.ts 45.00% <0.00%> (-48.55%) ⬇️
src/utils/promise.ts 33.33% <0.00%> (-40.01%) ⬇️
src/stores/room-list/algorithms/Algorithm.ts 4.03% <0.00%> (-29.22%) ⬇️
... and 79 more

Copy link
Member

@robintown robintown left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good otherwise, thanks

src/components/structures/auth/Registration.tsx Outdated Show resolved Hide resolved
@t3chguy
Copy link
Member

t3chguy commented Apr 21, 2022

I think we should only be warning if the user is no longer on the first screen where they choose their password, i.e only if they've hit the register button

Copy link
Member

@robintown robintown left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

☝️ What @t3chguy suggested

@t3chguy
Copy link
Member

t3chguy commented Apr 21, 2022

Captcha is just one of multiple UIA flows which may trigger during registration, terms & email verification are others

@@ -320,8 +320,20 @@ export class TermsAuthEntry extends React.Component<ITermsAuthEntryProps, ITerms

componentDidMount() {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This component can be used outside the context of registration, lets please not scope creep

This component already also renders CaptchaForm so two listeners will be active when the captcha form is active

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, it's not working if i only placed the listener in one of the other, so i had to place it in both, i believe they are seperate confirmation entity. you can check to confirm on your browser

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It should be possible to keep the listener in a single location in the Registration component, and then add and remove it on the fly as registration moves through the different stages using componentDidUpdate

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not sure i really understand this clearly, as requested by @t3chguy the warning should only be available at a later stage of the registration which is fine but according to your suggestion now, is it possible to actually detect if it has moved from one stage to another since all the stages are just having one route /register?.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, the Registration component holds state that determines which stage of the registration process the user is on, so we should be able to detect in that component when the user has moved past the first stage

Copy link
Contributor Author

@yaya-usman yaya-usman Apr 22, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I need a bit of your help here, currently the state variable i think keeps track of the stages is flow which is an array of object containing a property named stages which is also an array,the issue here is that i tried using componentDidUpdate and log to the console to check if there is a state change btwn previous and current so i can leverage on that but unfortunately there isn't, also immediately i hit the register button, it stops logging the current and prev values and rather logs the following instead, which i couldn't find anywhere in the project

console

This is when it still logs the curr and prev:

console2

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also lastly, in my opinion including the listeners in both components as i have done previously doesn't hurt atall because throughout the entire application it's only the Auth section that makes use of this components, even if it were to be used by another component, it still serves it's purpose of not allowing user refresh without warning them of a data loss.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nonetheless, i'll appreciate if you guys can point me in the right direction.

Copy link
Member

@t3chguy t3chguy Apr 22, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think just conditioning on this.state.doingUIAuth should be fine

it's only the Auth section that makes use of this components

Auth yes, but not Registration. The issue was about Registration, not changing password/deleting devices/deactivating account which can all also run the UIA code. Ideally lets keep to the issue to not scope creep

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok boss, thanks... Will try to work things out as you have suggested.

@robintown robintown self-requested a review April 24, 2022 13:46
@yaya-usman yaya-usman requested a review from t3chguy April 24, 2022 15:35
@@ -141,6 +141,22 @@ export default class Registration extends React.Component<IProps, IState> {
this.replaceClient(this.props.serverConfig);
}

componentDidUpdate(_, prevState: IState) {
if (prevState.doingUIAuth !== this.state.doingUIAuth) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this could still register twice, once on doingUIAuth false->true and once back (and if it keeps toggling then it would keep going

One thing to note (which I think is stupid) about addEventListener, is it does not check if the listener is already bound & removeEventListener only removes one instance, not all instances. So this code really needs to be solid because otherwise you'll leave stray listeners hanging around which will keep the warning even much later into the app lifecycle

Copy link
Contributor Author

@yaya-usman yaya-usman Apr 25, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not sure, i really understand your first statement clearly, but as for removeEventListener, when the component unmounts doesn't it remove all instances? since the listeners is only tied to one component, i guess it should be scoped within that component, this is the first time i am knowing about the one instance thing of listeners based on your text. So what do you suggest i do?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you call addEventListener 5 times, 5 handlers will be registered (even if the same method is passed) - removeEventListener only removes one of them, causing a memory leak by keeping a pointer to this component instance around.

Maybe easier would be to register the handler always in componentDidMount, but do the if doingUIAuth check inside the handler

Copy link
Contributor Author

@yaya-usman yaya-usman Apr 25, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sorry to ask again, i am finding it rather confusing that addEventListener will be registered as many times the method runs so that means the if statement is not doing anything then cause it was supposed to only register the listener if there is a disparity between the prevState and the current State. Also if i placed the listener in componentDidMount, then that means , i 'll just put this.state.doingUIAuth as the if condition since there is no prevState

Copy link
Contributor Author

@yaya-usman yaya-usman Apr 25, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i realized this.state.doingUIAuth will always be false, so the listener will never be registered. if i placed it in the componentDidMount

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if there is a disparity between the prevState and the current State

Right but that disparity could happen multiple times within a single mounting of this component, e.g if you start registration, do captcha, then finish captcha doingUIAuth would go false->true->false then unmount

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i 'll just put this.state.doingUIAuth as the if condition since there is no prevState

Precisely

Copy link
Contributor Author

@yaya-usman yaya-usman Apr 25, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i realized this.state.doingUIAuth will always be false, so the listener will never be registered. if i placed it in the componentDidMount

componentDidMount only mounts once and doingUIAuth will be false, so there is no way it'll register the listener.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, always register the handler, then inside unloadCallback you can check doingUIAuth

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

@robintown robintown removed their request for review April 25, 2022 14:19
@yaya-usman yaya-usman requested a review from t3chguy April 27, 2022 09:09
}

private unloadCallback = (event: BeforeUnloadEvent) => {
event.preventDefault();
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will always show the confirmation dialog

According to the specification, to show the confirmation dialog an event handler should call preventDefault() on the event.

(Empirically only in Firefox & Safari)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it's now working as it should. I have tested it in the three browsers.

@yaya-usman yaya-usman requested a review from t3chguy April 29, 2022 09:22
Copy link
Member

@t3chguy t3chguy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great, thanks for this!

:shipit:

@t3chguy t3chguy enabled auto-merge (squash) April 29, 2022 09:37
@t3chguy t3chguy merged commit b4da870 into matrix-org:develop Apr 29, 2022
@yaya-usman yaya-usman deleted the patch/warn_onrefresh branch April 29, 2022 09:46
su-ex added a commit to SchildiChat/element-desktop that referenced this pull request May 10, 2022
* Made the location map change the cursor to a pointer so it looks like it's clickable (https ([\#8451](matrix-org/matrix-react-sdk#8451)). Fixes element-hq/element-web#21991. Contributed by @Odyssey346.
* Implement improved spacing for the thread list and timeline ([\#8337](matrix-org/matrix-react-sdk#8337)). Fixes element-hq/element-web#21759. Contributed by @luixxiul.
* LLS: expose way to enable live sharing labs flag from location dialog ([\#8416](matrix-org/matrix-react-sdk#8416)).
* Fix source text boxes in View Source modal should have full width ([\#8425](matrix-org/matrix-react-sdk#8425)). Fixes element-hq/element-web#21938. Contributed by @EECvision.
* Read Receipts: never show +1, if it’s just 4, show all of them ([\#8428](matrix-org/matrix-react-sdk#8428)). Fixes element-hq/element-web#21935.
* Add opt-in analytics to onboarding tasks ([\#8409](matrix-org/matrix-react-sdk#8409)). Fixes element-hq/element-web#21705.
* Allow user to control if they are signed out of all devices when changing password ([\#8259](matrix-org/matrix-react-sdk#8259)). Fixes element-hq/element-web#2671.
* Implement new Read Receipt design ([\#8389](matrix-org/matrix-react-sdk#8389)). Fixes element-hq/element-web#20574.
* Stick connected video rooms to the top of the room list ([\#8353](matrix-org/matrix-react-sdk#8353)).
* LLS: fix jumpy maximised map ([\#8387](matrix-org/matrix-react-sdk#8387)).
* Persist audio and video mute state in video rooms ([\#8376](matrix-org/matrix-react-sdk#8376)).
* Forcefully disconnect from video rooms on logout and tab close ([\#8375](matrix-org/matrix-react-sdk#8375)).
* Add local echo of connected devices in video rooms ([\#8368](matrix-org/matrix-react-sdk#8368)).
* Improve text of account deactivation dialog ([\#8371](matrix-org/matrix-react-sdk#8371)). Fixes element-hq/element-web#17421.
* Live location sharing: own live beacon status on maximised view ([\#8374](matrix-org/matrix-react-sdk#8374)).
* Show a lobby screen in video rooms ([\#8287](matrix-org/matrix-react-sdk#8287)).
* Settings toggle to disable Composer Markdown ([\#8358](matrix-org/matrix-react-sdk#8358)). Fixes element-hq/element-web#20321.
* Cache localStorage objects for SettingsStore ([\#8366](matrix-org/matrix-react-sdk#8366)).
* Bring `View Source` back from behind developer mode ([\#8369](matrix-org/matrix-react-sdk#8369)). Fixes element-hq/element-web#21771.
* Fix update from creating desktop shortcut ([\element-hq#333](element-hq#333)). Fixes element-hq/element-web#9210. Contributed by @elibroftw.
* Fix macOS and Linux build regressions ([\element-hq#345](element-hq#345)).
* Allow loading language files with two part language code ([\element-hq#339](element-hq#339)). Contributed by @TPiUnikie.
* Fix Jitsi Meet getting wedged at startup in some cases ([\#21995](element-hq/element-web#21995)).
* Fix camera getting muted when disconnecting from a video room ([\#21958](element-hq/element-web#21958)).
* Fix race conditions around threads ([\#8448](matrix-org/matrix-react-sdk#8448)). Fixes element-hq/element-web#21627.
* Fix reading of cached room device setting values ([\#8495](matrix-org/matrix-react-sdk#8495)).
* Fix issue with dispatch happening mid-dispatch due to js-sdk emit ([\#8473](matrix-org/matrix-react-sdk#8473)). Fixes element-hq/element-web#22019.
* Match MSC behaviour for threads when disabled (thread-aware mode) ([\#8476](matrix-org/matrix-react-sdk#8476)). Fixes element-hq/element-web#22033.
* Specify position of DisambiguatedProfile inside a thread on bubble message layout ([\#8452](matrix-org/matrix-react-sdk#8452)). Fixes element-hq/element-web#21998. Contributed by @luixxiul.
* Location sharing: do not trackuserlocation in location picker ([\#8466](matrix-org/matrix-react-sdk#8466)). Fixes element-hq/element-web#22013.
* fix text and map indent in thread view ([\#8462](matrix-org/matrix-react-sdk#8462)). Fixes element-hq/element-web#21997.
* Live location sharing: don't group beacon info with room creation summary ([\#8468](matrix-org/matrix-react-sdk#8468)).
* Don't linkify code blocks ([\#7859](matrix-org/matrix-react-sdk#7859)). Fixes element-hq/element-web#9613.
* read receipts: improve tooltips to show names of users ([\#8438](matrix-org/matrix-react-sdk#8438)). Fixes element-hq/element-web#21940.
* Fix poll overflowing a reply tile on bubble message layout ([\#8459](matrix-org/matrix-react-sdk#8459)). Fixes element-hq/element-web#22005. Contributed by @luixxiul.
* Fix text link buttons on UserInfo panel ([\#8247](matrix-org/matrix-react-sdk#8247)). Fixes element-hq/element-web#21702. Contributed by @luixxiul.
* Clear local storage settings handler cache on logout ([\#8454](matrix-org/matrix-react-sdk#8454)). Fixes element-hq/element-web#21994.
* Fix jump to bottom button being always displayed in non-overflowing timelines ([\#8460](matrix-org/matrix-react-sdk#8460)). Fixes element-hq/element-web#22003.
* fix timeline search with empty text box should do nothing ([\#8262](matrix-org/matrix-react-sdk#8262)). Fixes element-hq/element-web#21714. Contributed by @EECvision.
* Fixes "space panel kebab menu is rendered out of view on sub spaces"  ([\#8350](matrix-org/matrix-react-sdk#8350)). Contributed by @yaya-usman.
* Add margin to the location map inside ThreadView ([\#8442](matrix-org/matrix-react-sdk#8442)). Fixes element-hq/element-web#21982. Contributed by @luixxiul.
* Patch: "Reloading the registration page should warn about data loss" ([\#8377](matrix-org/matrix-react-sdk#8377)). Contributed by @yaya-usman.
* Live location sharing: fix safari timestamps pt 2 ([\#8443](matrix-org/matrix-react-sdk#8443)).
* Fix issue with thread notification state ignoring initial events ([\#8417](matrix-org/matrix-react-sdk#8417)). Fixes element-hq/element-web#21927.
* Fix event text overflow on bubble message layout ([\#8391](matrix-org/matrix-react-sdk#8391)). Fixes element-hq/element-web#21882. Contributed by @luixxiul.
* Disable the message action bar when hovering over the 1px border between threads on the list ([\#8429](matrix-org/matrix-react-sdk#8429)). Fixes element-hq/element-web#21955. Contributed by @luixxiul.
* correctly align read receipts to state events in bubble layout ([\#8419](matrix-org/matrix-react-sdk#8419)). Fixes element-hq/element-web#21899.
* Fix issue with underfilled timelines when barren of content ([\#8432](matrix-org/matrix-react-sdk#8432)). Fixes element-hq/element-web#21930.
* Fix baseline misalignment of thread panel summary by deduplication ([\#8413](matrix-org/matrix-react-sdk#8413)).
* Fix editing of non-html replies ([\#8418](matrix-org/matrix-react-sdk#8418)). Fixes element-hq/element-web#21928.
* Read Receipts "Fall from the Sky" ([\#8414](matrix-org/matrix-react-sdk#8414)). Fixes element-hq/element-web#21888.
* Make read receipts handle nullable roomMembers correctly ([\#8410](matrix-org/matrix-react-sdk#8410)). Fixes element-hq/element-web#21896.
* Don't form continuations on either side of a thread root ([\#8408](matrix-org/matrix-react-sdk#8408)). Fixes element-hq/element-web#20908.
* Fix centering issue with sticker placeholder ([\#8404](matrix-org/matrix-react-sdk#8404)). Fixes element-hq/element-web#18014 and element-hq/element-web#6449.
* Disable download option on <video/> , preferring dedicated download button ([\#8403](matrix-org/matrix-react-sdk#8403)). Fixes element-hq/element-web#21902.
* Fix infinite loop when pinning/unpinning persistent widgets ([\#8396](matrix-org/matrix-react-sdk#8396)). Fixes element-hq/element-web#21864.
* Tweak ReadReceiptGroup to better handle disambiguation ([\#8402](matrix-org/matrix-react-sdk#8402)). Fixes element-hq/element-web#21897.
* stop the bottom edge of buttons getting clipped in devtools ([\#8400](matrix-org/matrix-react-sdk#8400)).
* Fix issue with threads timelines with few events cropping events ([\#8392](matrix-org/matrix-react-sdk#8392)). Fixes element-hq/element-web#20594.
* Changed font-weight to 400 to support light weight font ([\#8345](matrix-org/matrix-react-sdk#8345)). Fixes element-hq/element-web#21171. Contributed by @goelesha.
* Fix issue with thread panel not updating when it loads on first render ([\#8382](matrix-org/matrix-react-sdk#8382)). Fixes element-hq/element-web#21737.
* fix: "Mention highlight and cursor hover highlight has different corner radius" ([\#8384](matrix-org/matrix-react-sdk#8384)). Contributed by @yaya-usman.
* Fix regression around haveRendererForEvent for hidden events ([\#8379](matrix-org/matrix-react-sdk#8379)). Fixes element-hq/element-web#21862 and element-hq/element-web#21725.
* Fix regression around the room list treeview keyboard a11y ([\#8385](matrix-org/matrix-react-sdk#8385)). Fixes element-hq/element-web#21436.
* Remove float property to let the margin between events appear on bubble message layout ([\#8373](matrix-org/matrix-react-sdk#8373)). Fixes element-hq/element-web#21861. Contributed by @luixxiul.
* Fix race in Registration between server change and flows fetch ([\#8359](matrix-org/matrix-react-sdk#8359)). Fixes element-hq/element-web#21800.
* fix rainbow breaks compound emojis ([\#8245](matrix-org/matrix-react-sdk#8245)). Fixes element-hq/element-web#21371. Contributed by @EECvision.
* Fix RightPanelStore handling first room on app launch wrong ([\#8370](matrix-org/matrix-react-sdk#8370)). Fixes element-hq/element-web#21741.
* Fix UnknownBody error message unalignment ([\#8346](matrix-org/matrix-react-sdk#8346)). Fixes element-hq/element-web#21828. Contributed by @luixxiul.
* Use -webkit-line-clamp for the room header topic overflow ([\#8367](matrix-org/matrix-react-sdk#8367)). Fixes element-hq/element-web#21852. Contributed by @luixxiul.
* Fix issue with ServerInfo crashing the modal ([\#8364](matrix-org/matrix-react-sdk#8364)).
* Fixes around threads beta in degraded mode ([\#8319](matrix-org/matrix-react-sdk#8319)). Fixes element-hq/element-web#21762.
su-ex added a commit to SchildiChat/element-web that referenced this pull request May 10, 2022
* Made the location map change the cursor to a pointer so it looks like it's clickable (https ([\element-hq#8451](matrix-org/matrix-react-sdk#8451)). Fixes element-hq#21991. Contributed by @Odyssey346.
* Implement improved spacing for the thread list and timeline ([\element-hq#8337](matrix-org/matrix-react-sdk#8337)). Fixes element-hq#21759. Contributed by @luixxiul.
* LLS: expose way to enable live sharing labs flag from location dialog ([\element-hq#8416](matrix-org/matrix-react-sdk#8416)).
* Fix source text boxes in View Source modal should have full width ([\element-hq#8425](matrix-org/matrix-react-sdk#8425)). Fixes element-hq#21938. Contributed by @EECvision.
* Read Receipts: never show +1, if it’s just 4, show all of them ([\element-hq#8428](matrix-org/matrix-react-sdk#8428)). Fixes element-hq#21935.
* Add opt-in analytics to onboarding tasks ([\element-hq#8409](matrix-org/matrix-react-sdk#8409)). Fixes element-hq#21705.
* Allow user to control if they are signed out of all devices when changing password ([\element-hq#8259](matrix-org/matrix-react-sdk#8259)). Fixes element-hq#2671.
* Implement new Read Receipt design ([\element-hq#8389](matrix-org/matrix-react-sdk#8389)). Fixes element-hq#20574.
* Stick connected video rooms to the top of the room list ([\element-hq#8353](matrix-org/matrix-react-sdk#8353)).
* LLS: fix jumpy maximised map ([\element-hq#8387](matrix-org/matrix-react-sdk#8387)).
* Persist audio and video mute state in video rooms ([\element-hq#8376](matrix-org/matrix-react-sdk#8376)).
* Forcefully disconnect from video rooms on logout and tab close ([\element-hq#8375](matrix-org/matrix-react-sdk#8375)).
* Add local echo of connected devices in video rooms ([\element-hq#8368](matrix-org/matrix-react-sdk#8368)).
* Improve text of account deactivation dialog ([\element-hq#8371](matrix-org/matrix-react-sdk#8371)). Fixes element-hq#17421.
* Live location sharing: own live beacon status on maximised view ([\element-hq#8374](matrix-org/matrix-react-sdk#8374)).
* Show a lobby screen in video rooms ([\element-hq#8287](matrix-org/matrix-react-sdk#8287)).
* Settings toggle to disable Composer Markdown ([\element-hq#8358](matrix-org/matrix-react-sdk#8358)). Fixes element-hq#20321.
* Cache localStorage objects for SettingsStore ([\element-hq#8366](matrix-org/matrix-react-sdk#8366)).
* Bring `View Source` back from behind developer mode ([\element-hq#8369](matrix-org/matrix-react-sdk#8369)). Fixes element-hq#21771.
* Fix Jitsi Meet getting wedged at startup in some cases ([\element-hq#21995](element-hq#21995)).
* Fix camera getting muted when disconnecting from a video room ([\element-hq#21958](element-hq#21958)).
* Fix race conditions around threads ([\element-hq#8448](matrix-org/matrix-react-sdk#8448)). Fixes element-hq#21627.
* Fix reading of cached room device setting values ([\element-hq#8495](matrix-org/matrix-react-sdk#8495)).
* Fix issue with dispatch happening mid-dispatch due to js-sdk emit ([\element-hq#8473](matrix-org/matrix-react-sdk#8473)). Fixes element-hq#22019.
* Match MSC behaviour for threads when disabled (thread-aware mode) ([\element-hq#8476](matrix-org/matrix-react-sdk#8476)). Fixes element-hq#22033.
* Specify position of DisambiguatedProfile inside a thread on bubble message layout ([\element-hq#8452](matrix-org/matrix-react-sdk#8452)). Fixes element-hq#21998. Contributed by @luixxiul.
* Location sharing: do not trackuserlocation in location picker ([\element-hq#8466](matrix-org/matrix-react-sdk#8466)). Fixes element-hq#22013.
* fix text and map indent in thread view ([\element-hq#8462](matrix-org/matrix-react-sdk#8462)). Fixes element-hq#21997.
* Live location sharing: don't group beacon info with room creation summary ([\element-hq#8468](matrix-org/matrix-react-sdk#8468)).
* Don't linkify code blocks ([\element-hq#7859](matrix-org/matrix-react-sdk#7859)). Fixes element-hq#9613.
* read receipts: improve tooltips to show names of users ([\element-hq#8438](matrix-org/matrix-react-sdk#8438)). Fixes element-hq#21940.
* Fix poll overflowing a reply tile on bubble message layout ([\element-hq#8459](matrix-org/matrix-react-sdk#8459)). Fixes element-hq#22005. Contributed by @luixxiul.
* Fix text link buttons on UserInfo panel ([\element-hq#8247](matrix-org/matrix-react-sdk#8247)). Fixes element-hq#21702. Contributed by @luixxiul.
* Clear local storage settings handler cache on logout ([\element-hq#8454](matrix-org/matrix-react-sdk#8454)). Fixes element-hq#21994.
* Fix jump to bottom button being always displayed in non-overflowing timelines ([\element-hq#8460](matrix-org/matrix-react-sdk#8460)). Fixes element-hq#22003.
* fix timeline search with empty text box should do nothing ([\element-hq#8262](matrix-org/matrix-react-sdk#8262)). Fixes element-hq#21714. Contributed by @EECvision.
* Fixes "space panel kebab menu is rendered out of view on sub spaces"  ([\element-hq#8350](matrix-org/matrix-react-sdk#8350)). Contributed by @yaya-usman.
* Add margin to the location map inside ThreadView ([\element-hq#8442](matrix-org/matrix-react-sdk#8442)). Fixes element-hq#21982. Contributed by @luixxiul.
* Patch: "Reloading the registration page should warn about data loss" ([\element-hq#8377](matrix-org/matrix-react-sdk#8377)). Contributed by @yaya-usman.
* Live location sharing: fix safari timestamps pt 2 ([\element-hq#8443](matrix-org/matrix-react-sdk#8443)).
* Fix issue with thread notification state ignoring initial events ([\element-hq#8417](matrix-org/matrix-react-sdk#8417)). Fixes element-hq#21927.
* Fix event text overflow on bubble message layout ([\element-hq#8391](matrix-org/matrix-react-sdk#8391)). Fixes element-hq#21882. Contributed by @luixxiul.
* Disable the message action bar when hovering over the 1px border between threads on the list ([\element-hq#8429](matrix-org/matrix-react-sdk#8429)). Fixes element-hq#21955. Contributed by @luixxiul.
* correctly align read receipts to state events in bubble layout ([\element-hq#8419](matrix-org/matrix-react-sdk#8419)). Fixes element-hq#21899.
* Fix issue with underfilled timelines when barren of content ([\element-hq#8432](matrix-org/matrix-react-sdk#8432)). Fixes element-hq#21930.
* Fix baseline misalignment of thread panel summary by deduplication ([\element-hq#8413](matrix-org/matrix-react-sdk#8413)).
* Fix editing of non-html replies ([\element-hq#8418](matrix-org/matrix-react-sdk#8418)). Fixes element-hq#21928.
* Read Receipts "Fall from the Sky" ([\element-hq#8414](matrix-org/matrix-react-sdk#8414)). Fixes element-hq#21888.
* Make read receipts handle nullable roomMembers correctly ([\element-hq#8410](matrix-org/matrix-react-sdk#8410)). Fixes element-hq#21896.
* Don't form continuations on either side of a thread root ([\element-hq#8408](matrix-org/matrix-react-sdk#8408)). Fixes element-hq#20908.
* Fix centering issue with sticker placeholder ([\element-hq#8404](matrix-org/matrix-react-sdk#8404)). Fixes element-hq#18014 and element-hq#6449.
* Disable download option on <video/> , preferring dedicated download button ([\element-hq#8403](matrix-org/matrix-react-sdk#8403)). Fixes element-hq#21902.
* Fix infinite loop when pinning/unpinning persistent widgets ([\element-hq#8396](matrix-org/matrix-react-sdk#8396)). Fixes element-hq#21864.
* Tweak ReadReceiptGroup to better handle disambiguation ([\element-hq#8402](matrix-org/matrix-react-sdk#8402)). Fixes element-hq#21897.
* stop the bottom edge of buttons getting clipped in devtools ([\element-hq#8400](matrix-org/matrix-react-sdk#8400)).
* Fix issue with threads timelines with few events cropping events ([\element-hq#8392](matrix-org/matrix-react-sdk#8392)). Fixes element-hq#20594.
* Changed font-weight to 400 to support light weight font ([\element-hq#8345](matrix-org/matrix-react-sdk#8345)). Fixes element-hq#21171. Contributed by @goelesha.
* Fix issue with thread panel not updating when it loads on first render ([\element-hq#8382](matrix-org/matrix-react-sdk#8382)). Fixes element-hq#21737.
* fix: "Mention highlight and cursor hover highlight has different corner radius" ([\element-hq#8384](matrix-org/matrix-react-sdk#8384)). Contributed by @yaya-usman.
* Fix regression around haveRendererForEvent for hidden events ([\element-hq#8379](matrix-org/matrix-react-sdk#8379)). Fixes element-hq#21862 and element-hq#21725.
* Fix regression around the room list treeview keyboard a11y ([\element-hq#8385](matrix-org/matrix-react-sdk#8385)). Fixes element-hq#21436.
* Remove float property to let the margin between events appear on bubble message layout ([\element-hq#8373](matrix-org/matrix-react-sdk#8373)). Fixes element-hq#21861. Contributed by @luixxiul.
* Fix race in Registration between server change and flows fetch ([\element-hq#8359](matrix-org/matrix-react-sdk#8359)). Fixes element-hq#21800.
* fix rainbow breaks compound emojis ([\element-hq#8245](matrix-org/matrix-react-sdk#8245)). Fixes element-hq#21371. Contributed by @EECvision.
* Fix RightPanelStore handling first room on app launch wrong ([\element-hq#8370](matrix-org/matrix-react-sdk#8370)). Fixes element-hq#21741.
* Fix UnknownBody error message unalignment ([\element-hq#8346](matrix-org/matrix-react-sdk#8346)). Fixes element-hq#21828. Contributed by @luixxiul.
* Use -webkit-line-clamp for the room header topic overflow ([\element-hq#8367](matrix-org/matrix-react-sdk#8367)). Fixes element-hq#21852. Contributed by @luixxiul.
* Fix issue with ServerInfo crashing the modal ([\element-hq#8364](matrix-org/matrix-react-sdk#8364)).
* Fixes around threads beta in degraded mode ([\element-hq#8319](matrix-org/matrix-react-sdk#8319)). Fixes element-hq#21762.
su-ex added a commit to SchildiChat/matrix-react-sdk that referenced this pull request May 10, 2022
* Made the location map change the cursor to a pointer so it looks like it's clickable (https ([\matrix-org#8451](matrix-org#8451)). Fixes element-hq/element-web#21991. Contributed by @Odyssey346.
* Implement improved spacing for the thread list and timeline ([\matrix-org#8337](matrix-org#8337)). Fixes element-hq/element-web#21759. Contributed by @luixxiul.
* LLS: expose way to enable live sharing labs flag from location dialog ([\matrix-org#8416](matrix-org#8416)).
* Fix source text boxes in View Source modal should have full width ([\matrix-org#8425](matrix-org#8425)). Fixes element-hq/element-web#21938. Contributed by @EECvision.
* Read Receipts: never show +1, if it’s just 4, show all of them ([\matrix-org#8428](matrix-org#8428)). Fixes element-hq/element-web#21935.
* Add opt-in analytics to onboarding tasks ([\matrix-org#8409](matrix-org#8409)). Fixes element-hq/element-web#21705.
* Allow user to control if they are signed out of all devices when changing password ([\matrix-org#8259](matrix-org#8259)). Fixes element-hq/element-web#2671.
* Implement new Read Receipt design ([\matrix-org#8389](matrix-org#8389)). Fixes element-hq/element-web#20574.
* Stick connected video rooms to the top of the room list ([\matrix-org#8353](matrix-org#8353)).
* LLS: fix jumpy maximised map ([\matrix-org#8387](matrix-org#8387)).
* Persist audio and video mute state in video rooms ([\matrix-org#8376](matrix-org#8376)).
* Forcefully disconnect from video rooms on logout and tab close ([\matrix-org#8375](matrix-org#8375)).
* Add local echo of connected devices in video rooms ([\matrix-org#8368](matrix-org#8368)).
* Improve text of account deactivation dialog ([\matrix-org#8371](matrix-org#8371)). Fixes element-hq/element-web#17421.
* Live location sharing: own live beacon status on maximised view ([\matrix-org#8374](matrix-org#8374)).
* Show a lobby screen in video rooms ([\matrix-org#8287](matrix-org#8287)).
* Settings toggle to disable Composer Markdown ([\matrix-org#8358](matrix-org#8358)). Fixes element-hq/element-web#20321.
* Cache localStorage objects for SettingsStore ([\matrix-org#8366](matrix-org#8366)).
* Bring `View Source` back from behind developer mode ([\matrix-org#8369](matrix-org#8369)). Fixes element-hq/element-web#21771.
* Fix race conditions around threads ([\matrix-org#8448](matrix-org#8448)). Fixes element-hq/element-web#21627.
* Fix reading of cached room device setting values ([\matrix-org#8495](matrix-org#8495)).
* Fix issue with dispatch happening mid-dispatch due to js-sdk emit ([\matrix-org#8473](matrix-org#8473)). Fixes element-hq/element-web#22019.
* Match MSC behaviour for threads when disabled (thread-aware mode) ([\matrix-org#8476](matrix-org#8476)). Fixes element-hq/element-web#22033.
* Specify position of DisambiguatedProfile inside a thread on bubble message layout ([\matrix-org#8452](matrix-org#8452)). Fixes element-hq/element-web#21998. Contributed by @luixxiul.
* Location sharing: do not trackuserlocation in location picker ([\matrix-org#8466](matrix-org#8466)). Fixes element-hq/element-web#22013.
* fix text and map indent in thread view ([\matrix-org#8462](matrix-org#8462)). Fixes element-hq/element-web#21997.
* Live location sharing: don't group beacon info with room creation summary ([\matrix-org#8468](matrix-org#8468)).
* Don't linkify code blocks ([\matrix-org#7859](matrix-org#7859)). Fixes element-hq/element-web#9613.
* read receipts: improve tooltips to show names of users ([\matrix-org#8438](matrix-org#8438)). Fixes element-hq/element-web#21940.
* Fix poll overflowing a reply tile on bubble message layout ([\matrix-org#8459](matrix-org#8459)). Fixes element-hq/element-web#22005. Contributed by @luixxiul.
* Fix text link buttons on UserInfo panel ([\matrix-org#8247](matrix-org#8247)). Fixes element-hq/element-web#21702. Contributed by @luixxiul.
* Clear local storage settings handler cache on logout ([\matrix-org#8454](matrix-org#8454)). Fixes element-hq/element-web#21994.
* Fix jump to bottom button being always displayed in non-overflowing timelines ([\matrix-org#8460](matrix-org#8460)). Fixes element-hq/element-web#22003.
* fix timeline search with empty text box should do nothing ([\matrix-org#8262](matrix-org#8262)). Fixes element-hq/element-web#21714. Contributed by @EECvision.
* Fixes "space panel kebab menu is rendered out of view on sub spaces"  ([\matrix-org#8350](matrix-org#8350)). Contributed by @yaya-usman.
* Add margin to the location map inside ThreadView ([\matrix-org#8442](matrix-org#8442)). Fixes element-hq/element-web#21982. Contributed by @luixxiul.
* Patch: "Reloading the registration page should warn about data loss" ([\matrix-org#8377](matrix-org#8377)). Contributed by @yaya-usman.
* Live location sharing: fix safari timestamps pt 2 ([\matrix-org#8443](matrix-org#8443)).
* Fix issue with thread notification state ignoring initial events ([\matrix-org#8417](matrix-org#8417)). Fixes element-hq/element-web#21927.
* Fix event text overflow on bubble message layout ([\matrix-org#8391](matrix-org#8391)). Fixes element-hq/element-web#21882. Contributed by @luixxiul.
* Disable the message action bar when hovering over the 1px border between threads on the list ([\matrix-org#8429](matrix-org#8429)). Fixes element-hq/element-web#21955. Contributed by @luixxiul.
* correctly align read receipts to state events in bubble layout ([\matrix-org#8419](matrix-org#8419)). Fixes element-hq/element-web#21899.
* Fix issue with underfilled timelines when barren of content ([\matrix-org#8432](matrix-org#8432)). Fixes element-hq/element-web#21930.
* Fix baseline misalignment of thread panel summary by deduplication ([\matrix-org#8413](matrix-org#8413)).
* Fix editing of non-html replies ([\matrix-org#8418](matrix-org#8418)). Fixes element-hq/element-web#21928.
* Read Receipts "Fall from the Sky" ([\matrix-org#8414](matrix-org#8414)). Fixes element-hq/element-web#21888.
* Make read receipts handle nullable roomMembers correctly ([\matrix-org#8410](matrix-org#8410)). Fixes element-hq/element-web#21896.
* Don't form continuations on either side of a thread root ([\matrix-org#8408](matrix-org#8408)). Fixes element-hq/element-web#20908.
* Fix centering issue with sticker placeholder ([\matrix-org#8404](matrix-org#8404)). Fixes element-hq/element-web#18014 and element-hq/element-web#6449.
* Disable download option on <video/> , preferring dedicated download button ([\matrix-org#8403](matrix-org#8403)). Fixes element-hq/element-web#21902.
* Fix infinite loop when pinning/unpinning persistent widgets ([\matrix-org#8396](matrix-org#8396)). Fixes element-hq/element-web#21864.
* Tweak ReadReceiptGroup to better handle disambiguation ([\matrix-org#8402](matrix-org#8402)). Fixes element-hq/element-web#21897.
* stop the bottom edge of buttons getting clipped in devtools ([\matrix-org#8400](matrix-org#8400)).
* Fix issue with threads timelines with few events cropping events ([\matrix-org#8392](matrix-org#8392)). Fixes element-hq/element-web#20594.
* Changed font-weight to 400 to support light weight font ([\matrix-org#8345](matrix-org#8345)). Fixes element-hq/element-web#21171. Contributed by @goelesha.
* Fix issue with thread panel not updating when it loads on first render ([\matrix-org#8382](matrix-org#8382)). Fixes element-hq/element-web#21737.
* fix: "Mention highlight and cursor hover highlight has different corner radius" ([\matrix-org#8384](matrix-org#8384)). Contributed by @yaya-usman.
* Fix regression around haveRendererForEvent for hidden events ([\matrix-org#8379](matrix-org#8379)). Fixes element-hq/element-web#21862 and element-hq/element-web#21725.
* Fix regression around the room list treeview keyboard a11y ([\matrix-org#8385](matrix-org#8385)). Fixes element-hq/element-web#21436.
* Remove float property to let the margin between events appear on bubble message layout ([\matrix-org#8373](matrix-org#8373)). Fixes element-hq/element-web#21861. Contributed by @luixxiul.
* Fix race in Registration between server change and flows fetch ([\matrix-org#8359](matrix-org#8359)). Fixes element-hq/element-web#21800.
* fix rainbow breaks compound emojis ([\matrix-org#8245](matrix-org#8245)). Fixes element-hq/element-web#21371. Contributed by @EECvision.
* Fix RightPanelStore handling first room on app launch wrong ([\matrix-org#8370](matrix-org#8370)). Fixes element-hq/element-web#21741.
* Fix UnknownBody error message unalignment ([\matrix-org#8346](matrix-org#8346)). Fixes element-hq/element-web#21828. Contributed by @luixxiul.
* Use -webkit-line-clamp for the room header topic overflow ([\matrix-org#8367](matrix-org#8367)). Fixes element-hq/element-web#21852. Contributed by @luixxiul.
* Fix issue with ServerInfo crashing the modal ([\matrix-org#8364](matrix-org#8364)).
* Fixes around threads beta in degraded mode ([\matrix-org#8319](matrix-org#8319)). Fixes element-hq/element-web#21762.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
T-Defect Bugs, crashes, hangs, vulnerabilities, or other reported problems
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Reloading the registration page should warn about data loss
3 participants