In React the order of the execution of mount and render functions
is: `componentWillMount --> render --> componentDidMount`
The `CreateRoomDialog` `render()` function is executed before than
the `componentDidMount()` function so the
`this.defaultNoFederate = config.default_federate === false;`
; instruction which is executed in the `componentDidMount` function
(in `CreateRoomDialog`) is evaluated always after than the rendering
of the page.
Therefore, the obvious issue is that the values obtained from the
`SdkConfig.get()` function (`config.default_federate`) are obtained
later than their usage on `render()`.
This patch makes this change to fix the described issue:
* componentWillMount instead of componentDidMount
Signed-off-by: Pablo Saavedra <psaavedra@igalia.com>
- Wrapped all the modals inside a react-focus-trap component disabling
keyboard navigation outside the modal dialogs
- Disabled our custom key handling at dialog level. Cancelling on esc
key is now handled via FocusTrap component.
- Removed onEnter prop from the BaseDialog component. Dialogs that
submit data all now embed a form with onSubmit handler. And since
keyboard focus is now managed better via FocusTrap it no longer makes
sense for the other dialog types. Fixes
https://github.com/vector-im/riot-web/issues/5736
- Set aria-hidden on the matrixChat outer node when showing dialogs to
disable navigating outside the modals by using screen reader specific
features.