Robin
d883309dcd
Avoid using .render() in forward dialog test ( #7961 )
...
Signed-off-by: Robin Townsend <robin@robin.town >
2022-03-03 07:54:20 -05:00
Kerry
ebc2267e52
Location sharing > back button ( #7958 )
...
* add back/cancel buttons to share dialog
Signed-off-by: Kerry Archibald <kerrya@element.io >
* test buttons
Signed-off-by: Kerry Archibald <kerrya@element.io >
* improve weird indentation
Signed-off-by: Kerry Archibald <kerrya@element.io >
* relint
Signed-off-by: Kerry Archibald <kerrya@element.io >
* PR tweaks
Signed-off-by: Kerry Archibald <kerrya@element.io >
* quotes
Signed-off-by: Kerry Archibald <kerrya@element.io >
2022-03-03 11:30:46 +01:00
Kerry
7aefa34420
use LocationAssetType ( #7965 )
...
* use LocationAssetType
Signed-off-by: Kerry Archibald <kerrya@element.io >
* center icon better
Signed-off-by: Kerry Archibald <kerrya@element.io >
* remove debug
Signed-off-by: Kerry Archibald <kerrya@element.io >
* retrigger all builds
Signed-off-by: Kerry Archibald <kerrya@element.io >
2022-03-03 10:04:38 +00:00
Eric Eastwood
3572b36648
Fix room list being laggy while scrolling 🐌 ( #7939 )
...
Fix https://github.com/vector-im/element-web/issues/21262
Optimizations:
1. Don't update the `style` (positioning) of hidden tooltips
1. Don't add DOM elements to the page for hidden tooltips
> ## Performance problems broken down
>
>
> ### Hidden tooltips rendering on `scroll`
>
> You can see that the Tooltip render is attached to the `scroll` event at [`src/components/views/elements/Tooltip.tsx#L78-L81`](https://github.com/matrix-org/matrix-react-sdk/blob/31f0a37ca2eeba6a6296787f2fcb33c4b26efebc/src/components/views/elements/Tooltip.tsx#L78-L81 )
>
> The rendering calls [`src/components/views/elements/Tooltip.tsx#L101` -> `updatePosition`](https://github.com/matrix-org/matrix-react-sdk/blob/36adba101caf58afd280e6eedad003b38165be4f/src/components/views/elements/Tooltip.tsx#L101 ) which ends up as an expensive "Recalculate Style" because it uses [`Element.getBoundingClientRect()`](https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect ). This happens many many times within a single `scroll` event. Probably once for each tooltip within the room list **even though no tooltips are event visible as I scroll**. I can see that we're just updating the `style` attribute for a bunch of `.mx_Tooltip_invisible` elements at the end of the document.
>
> Each one of the purple spans below the `scroll` span ends up as a call to `updatePosition`. And a `scroll` event takes 35ms to 60ms to complete which is way over the 16.6ms 60 FPS budget (on a powerful desktop PC), granted these times are with the performance profiling running. This is without the Passbolt extension explained below.
>
> And the room list contains about 141 rooms (`document.querySelectorAll('.mx_RoomTile').length`):
>
> 
>
>
>
> ### Passbolt Chrome browser extension exacerbates the problem
>
> In order to login to Passbolt, it requires a browser extension which defaults to mucking up all pages:
>
> <img src="https://user-images.githubusercontent.com/558581/156275644-bc26b1f5-5d99-4eae-b74b-c2028f2f1baf.png " width="300">
>
>
> The extension source seems to be available: https://github.com/passbolt/passbolt_browser_extension
>
> The Passbolt Chrome extension has a `MutationObserver` listening to all attribute and element changes to the whole `<body>` of the `document` so it can `findAndSetAuthenticationFields` (find form elements and autofill).
>
>
> [`passbolt/passbolt_styleguide` -> `src/react-web-integration/lib/InForm/InFormManager.js#L143`](https://github.com/passbolt/passbolt_styleguide/blob/1c5eddc9102c7cd1029d10dc6836af4722cdba61/src/react-web-integration/lib/InForm/InFormManager.js#L143 )
> ```js
> this.mutationObserver.observe(document.body, { attributes: true, childList: true, subtree: true });
> ```
>
> This causes a bunch of `Forced reflow` because the Tooltip `updatePosition` is mutating the element `style` attribute and Passbolt `MutationObserver` callbacks are querying the whole DOM looking for form elements all in the same frame.
>
> Under the `scroll` event, all of the little spans are the `MutationObserver` -> `findAndSetAuthenticationFields`. With the Passbolt extension, scrolling is verrrrry crunchy and bad.
>
> 
>
>
> #### Workaround
>
> Instead of running Passbolt on all sites, we can enable the extension to only run on the domain for Passbolt instance itself. I'm guessing the Passbolt extension also does autofill stuff on sites but I always login manually to the Passbolt instance so this solution works for me �
>
> **Extensions** -> **Passbolt** -> **Details** -> Change **Site access** to `On specific sites` -> Enter in your Passbolt instance `https://passbolt.example.com/ `
>
> 
>
> *-- https://github.com/vector-im/element-web/issues/21262 *
2022-03-02 13:20:01 -06:00
Kerry
b480bffab0
Location share type UI ( #7924 )
...
* copyright
Signed-off-by: Kerry Archibald <kerrya@element.io >
* empty line
Signed-off-by: Kerry Archibald <kerrya@element.io >
* functional picker
Signed-off-by: Kerry Archibald <kerrya@element.io >
* most style
Signed-off-by: Kerry Archibald <kerrya@element.io >
* nice style for options
Signed-off-by: Kerry Archibald <kerrya@element.io >
* get ShareType test passing
Signed-off-by: Kerry Archibald <kerrya@element.io >
* add maplibre mock
Signed-off-by: Kerry Archibald <kerrya@element.io >
* lint and test
Signed-off-by: Kerry Archibald <kerrya@element.io >
* add section to themes for location sharing cols
Signed-off-by: Kerry Archibald <kerrya@element.io >
* add svg mock
Signed-off-by: Kerry Archibald <kerrya@element.io >
* use same mock string as imageMock
Signed-off-by: Kerry Archibald <kerrya@element.io >
* newline
Signed-off-by: Kerry Archibald <kerrya@element.io >
* lint
Signed-off-by: Kerry Archibald <kerrya@element.io >
* add live location icon
Signed-off-by: Kerry Archibald <kerrya@element.io >
* rename useEnabledShareTypes
Signed-off-by: Kerry Archibald <kerrya@element.io >
* use solid color for live border
* use ternary
Signed-off-by: Kerry Archibald <kerrya@element.io >
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com >
2022-03-02 13:00:40 +00:00
Travis Ralston
31f0a37ca2
Fix js-sdk imports ( #7938 )
2022-03-01 23:51:05 +00:00
Michael Telatynski
f25e6813bb
Mandate use of js-sdk/src/matrix import over js-sdk/src ( #7933 )
2022-03-01 20:42:05 +00:00
Kerry
ac36234068
update snap ( #7932 )
...
Signed-off-by: Kerry Archibald <kerrya@element.io >
2022-03-01 17:26:30 +00:00
Kerry
3f1951b5b8
Prep for pin drop location sharing ( #7919 )
...
* add labs flag feature_location_share_pin_drop
Signed-off-by: Kerry Archibald <kerrya@element.io >
* split LocationButton into two components
Signed-off-by: Kerry Archibald <kerrya@element.io >
* rethemendex
Signed-off-by: Kerry Archibald <kerrya@element.io >
* copyright
Signed-off-by: Kerry Archibald <kerrya@element.io >
* one more (c)
Signed-off-by: Kerry Archibald <kerrya@element.io >
* i18n
Signed-off-by: Kerry Archibald <kerrya@element.io >
* empty line
Signed-off-by: Kerry Archibald <kerrya@element.io >
* use same matrix client import
Signed-off-by: Kerry Archibald <kerrya@element.io >
2022-03-01 18:00:07 +01:00
Kerry
4bf42babc7
dont re-prepare voice messages ( #7897 )
...
* dont reprepare voice messages
Signed-off-by: Kerry Archibald <kerrya@element.io >
* remove debug
Signed-off-by: Kerry Archibald <kerrya@element.io >
* test Playback
Signed-off-by: Kerry Archibald <kerrya@element.io >
* test RecordingPlayback
Signed-off-by: Kerry Archibald <kerrya@element.io >
* forgotten copyright
Signed-off-by: Kerry Archibald <kerrya@element.io >
* add comments
Signed-off-by: Kerry Archibald <kerrya@element.io >
2022-03-01 09:43:32 +01:00
Šimon Brandner
df591ee835
Make everything use the KeyBindingManager ( #7907 )
2022-02-28 16:05:52 +00:00
Robin
ece2b8572a
Fix edge case in context menu chevron positioning ( #7899 )
...
* Fix edge case in context menu chevron positioning
Signed-off-by: Robin Townsend <robin@robin.town >
* Expand context menu positioning regression tests
Signed-off-by: Robin Townsend <robin@robin.town >
2022-02-25 17:49:57 +00:00
Robin
85dc58a504
Try harder to keep context menus inside the window ( #7863 )
...
* Try harder to keep context menus inside the window
Signed-off-by: Robin Townsend <robin@robin.town >
* Use UIStore for window dimensions
Signed-off-by: Robin Townsend <robin@robin.town >
* Test ContextMenu positioning
Signed-off-by: Robin Townsend <robin@robin.town >
2022-02-24 10:25:27 -05:00
Kerry
f4cd71fd47
Check 'useSystemTheme' in quick settings theme switcher ( #7809 )
...
* mock Element.scrollIntoView in jest setup
Signed-off-by: Kerry Archibald <kerrya@element.io >
* extract theme switcher from quick settings, add match system option, test
Signed-off-by: Kerry Archibald <kerrya@element.io >
* i18n
Signed-off-by: Kerry Archibald <kerrya@element.io >
* forgotten copyright
Signed-off-by: Kerry Archibald <kerrya@element.io >
* stylelint
Signed-off-by: Kerry Archibald <kerrya@element.io >
* remove old class
Signed-off-by: Kerry Archibald <kerrya@element.io >
2022-02-24 10:01:06 +01:00
J. Ryan Stinnett
d8ac7cf202
Fix thread summary layout for narrow right panel timeline ( #7838 )
2022-02-23 14:03:46 +00:00
Kerry
5e76d988ca
convert test-utils to typescript ( #7877 )
...
* move js utils into directory
Signed-off-by: Kerry Archibald <kerrya@element.io >
* typescripterize js test-utils
Signed-off-by: Kerry Archibald <kerrya@element.io >
* move test utils to directory
Signed-off-by: Kerry Archibald <kerrya@element.io >
* move remaining mock functions to directory
Signed-off-by: Kerry Archibald <kerrya@element.io >
* update imports
Signed-off-by: Kerry Archibald <kerrya@element.io >
* missed copyright
Signed-off-by: Kerry Archibald <kerrya@element.io >
* type wait for update
Signed-off-by: Kerry Archibald <kerrya@element.io >
2022-02-23 11:21:11 +00:00
Šimon Brandner
93a9af7b3a
Keybinding code unification #3 ( #7850 )
2022-02-23 09:12:04 +00:00
Robin
bb79c6086a
Don't pillify code blocks ( #7861 )
...
* Don't pillify code blocks
Signed-off-by: Robin Townsend <robin@robin.town >
* Test that pills do not appear in code blocks
Signed-off-by: Robin Townsend <robin@robin.town >
* Use snapshot instead for test
Signed-off-by: Robin Townsend <robin@robin.town >
2022-02-22 06:46:34 -05:00
Michael Telatynski
8fccef86d8
Wire up drag-drop file uploads for the thread view ( #7860 )
2022-02-22 11:14:56 +00:00
Michael Telatynski
2a55d22916
Wire up CallEventGroupers for Search Results ( #7866 )
2022-02-22 10:39:08 +00:00
Kerry
9db59d75b9
Bump react-focus-lock ( #7858 )
...
* react-focus-lock to 2.5.1
Signed-off-by: Kerry Archibald <kerrya@element.io >
* use enzyme in ASSD test so focus lock finds active element
Signed-off-by: Kerry Archibald <kerrya@element.io >
* findById and flushPromises to test utils
Signed-off-by: Kerry Archibald <kerrya@element.io >
2022-02-21 17:09:01 +00:00
Kerry
8b9263c808
Clean up some unit test logs ( #7857 )
...
* kill some unit test logs in arrays-test
Signed-off-by: Kerry Archibald <kerrya@element.io >
* remove mock logs that are asserted against anyway
* remove more logs
Signed-off-by: Kerry Archibald <kerrya@element.io >
* fix safeCOunterpartTranslate warnings in tests
Signed-off-by: Kerry Archibald <kerrya@element.io >
* more safeCounterpartTranslate warnings
Signed-off-by: Kerry Archibald <kerrya@element.io >
* lint
Signed-off-by: Kerry Archibald <kerrya@element.io >
* remove more logs
Signed-off-by: Kerry Archibald <kerrya@element.io >
* add helper
Signed-off-by: Kerry Archibald <kerrya@element.io >
* naming
Signed-off-by: Kerry Archibald <kerrya@element.io >
2022-02-21 16:57:44 +00:00
Andy Balaam
f1e1b7be86
Support "closed" polls whose votes are not visible until they are ended ( #7842 )
2022-02-21 10:21:35 +00:00
Kerry
fc9a221371
Focus trap in poll creation dialog ( #7847 )
...
* add autofocus
Signed-off-by: Kerry Archibald <kerrya@element.io >
* test
Signed-off-by: Kerry Archibald <kerrya@element.io >
* scope ids
Signed-off-by: Kerry Archibald <kerrya@element.io >
* whitespace
Signed-off-by: Kerry Archibald <kerrya@element.io >
2022-02-18 16:35:08 +00:00
Kerry
6fccd6b183
add cursor: pointer to actionable poll options ( #7826 )
...
* add cursor: pointer to actionable poll options
Signed-off-by: Kerry Archibald <kerrya@element.io >
* eof
Signed-off-by: Kerry Archibald <kerrya@element.io >
2022-02-18 11:43:07 +01:00
J. Ryan Stinnett
a939184e10
Tear down AppTile using lifecycle tracking ( #7833 )
2022-02-17 16:30:36 +00:00
Andy Balaam
93d4364455
Prevent forwarding polls ( #7819 )
2022-02-17 10:57:12 +00:00
Andy Balaam
7387f3c80a
Allow editing polls ( #7806 )
2022-02-17 09:13:05 +00:00
Andy Balaam
84e15fa148
Display '(edited)' next to edited polls ( #7789 )
2022-02-15 08:52:51 +00:00
Michael Telatynski
cfa6e266cd
Wire up new fields on the ViewRoom posthog event and more interactions ( #7787 )
2022-02-14 19:31:13 +00:00
Charlie Calendre
8103e606c4
Fix translation for keyboard shortcut displaynames ( #7758 )
2022-02-10 09:11:35 +00:00
Kerry
818fddd72c
Add customisation point to disable space creation ( #7766 )
...
* mock matchMedia in jest setup
Signed-off-by: Kerry Archibald <kerrya@element.io >
* use UIComponent.CreateSpaces in space panel
Signed-off-by: Kerry Archibald <kerrya@element.io >
* lint
Signed-off-by: Kerry Archibald <kerrya@element.io >
* hide add space in spacecontextmenu
Signed-off-by: Kerry Archibald <kerrya@element.io >
* use UIComponent customistations in space oom view add space button
Signed-off-by: Kerry Archibald <kerrya@element.io >
* copyright
Signed-off-by: Kerry Archibald <kerrya@element.io >
2022-02-09 17:21:40 +01:00
Michael Telatynski
5620b83d34
Wire up more Posthog tracking ( #7689 )
2022-02-09 14:25:58 +00:00
Michael Telatynski
714136d4f7
Consolidate RedactionGrouper and HiddenEventGrouper into MELS ( #7739 )
2022-02-09 10:51:12 +00:00
Kerry
30d1ac1eea
unit test basic paths in UserInfo ( #7740 )
...
* unit test main paths in UserInfo component
Signed-off-by: Kerry Archibald <kerrya@element.io >
* one more test case
Signed-off-by: Kerry Archibald <kerrya@element.io >
* remove BasicUserInfo export
Signed-off-by: Kerry Archibald <kerrya@element.io >
2022-02-08 12:14:52 +00:00
Michael Telatynski
78e78292cb
Update PollCreateDialog-test to snapshot the html and not react tree ( #7712 )
2022-02-03 11:54:03 +00:00
Kerry
292971dd0e
Upgrade to jest 27 ( #7699 )
...
* use jest@27.4.0, replace jest-environment-jsdom-sixteen with jest-environment-jsdom
Signed-off-by: Kerry Archibald <kerrya@element.io >
* polyfill setImmediate
Signed-off-by: Kerry Archibald <kerrya@element.io >
* remove done from async test cases
* useRealTimers in test relying on promise flushing
Signed-off-by: Kerry Archibald <kerrya@element.io >
* remove jest environment file
Signed-off-by: Kerry Archibald <kerrya@element.io >
* replace ts-jest mocked with jest utils mocked
Signed-off-by: Kerry Archibald <kerrya@element.io >
2022-02-02 13:02:17 +01:00
Andy Balaam
f5226f9d5b
Simplify Composer buttons ( #7678 )
...
* Render a CollapsibleButton's children (needed by UploadButton)
* Make UploadButton ready to live inside an overflow menu
* Always show overflow menu in composer: main buttons are emoji and attach
* Re-order composer buttons as per design
* Re-word composer button captions to be simple nouns
* Don't rotate More options button when clicked
* Move the composer menu and dialogs 16px in from right
* Reduce shadow on composer More menu
* From review: remove else clause
* From review: take input out of button
* Update test snapshots
* Update snapshots
2022-02-02 09:30:53 +00:00
Germain
5973d725e0
Add new threads to the panel as they are discovered ( #7688 )
2022-02-01 15:01:00 +00:00
Michael Telatynski
991257cbc3
Fix accessibility and consistency of MessageComposerButtons ( #7679 )
2022-01-31 16:05:05 +00:00
Kerry
085ecc7f5f
Chat export parameter customisation ( #7647 )
...
* use export settings and hide fields
Signed-off-by: Kerry Archibald <kerrya@element.io >
* fix exporter tests
Signed-off-by: Kerry Archibald <kerrya@element.io >
* test ExportDialog with settings
Signed-off-by: Kerry Archibald <kerrya@element.io >
* tidy debugs, rename setting to Parameters
Signed-off-by: Kerry Archibald <kerrya@element.io >
* use reasonable 100gb limit
Signed-off-by: Kerry Archibald <kerrya@element.io >
* use normal setting instead of UIFeature
Signed-off-by: Kerry Archibald <kerrya@element.io >
* use a customisation
Signed-off-by: Kerry Archibald <kerrya@element.io >
* move validateNumberInRange to utils
Signed-off-by: Kerry Archibald <kerrya@element.io >
* use nullish coalesce
Signed-off-by: Kerry Archibald <kerrya@element.io >
* use 8gb size limit for customisation
Signed-off-by: Kerry Archibald <kerrya@element.io >
* update comments
Signed-off-by: Kerry Archibald <kerrya@element.io >
2022-01-31 12:54:14 +01:00
Andy Balaam
2229437424
Refactor renderButtons() into MessageComposerButtons component ( #7664 )
2022-01-28 15:44:03 +00:00
Eric Eastwood
7fa27f5834
Add jump to date functionality to date headers in timeline v2 ( #7339 )
...
Fix https://github.com/vector-im/element-web/issues/7677
Utilizes MSC3030: https://github.com/matrix-org/matrix-doc/pull/3030
https://user-images.githubusercontent.com/558581/150060664-79627573-f4fd-497c-b726-dc3485854bd0.png
2022-01-27 16:32:12 -06:00
Šimon Brandner
57a5647079
Work towards unifying KeyboardShortcuts and KeyBindingsDefaults #1 ( #7651 )
2022-01-27 11:37:53 +00:00
Kerry
3eca71bc84
Unit test ExportDialog ( #7619 )
...
* add test ids to dialog buttons
Signed-off-by: Kerry Archibald <kerrya@element.io >
* unit test ExportDialog
Signed-off-by: Kerry Archibald <kerrya@element.io >
* remove extra snapshot
Signed-off-by: Kerry Archibald <kerrya@element.io >
* fix bad snapshots
Signed-off-by: Kerry Archibald <kerrya@element.io >
* remove wrappers from snapshot
Signed-off-by: Kerry Archibald <kerrya@element.io >
2022-01-27 09:55:08 +01:00
Kerry
b481fc069e
Wrapping component to show/hide UI based on UIFeature setting ( #7585 )
...
* add wrapping component for hiding UI
Signed-off-by: Kerry Archibald <kerrya@element.io >
* rename and move to components
Signed-off-by: Kerry Archibald <kerrya@element.io >
* prefix interface and add missing copyright
Signed-off-by: Kerry Archibald <kerrya@element.io >
* remove roomId prop
Signed-off-by: Kerry Archibald <kerrya@element.io >
2022-01-25 10:25:41 +01:00
Šimon Brandner
5f18e4888c
Improve the look of the keyboard settings tab ( #7562 )
...
* First cut of new keyboard shortcuts
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com >
* Remove unused code
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com >
* i18n
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com >
* Amend shortcuts
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com >
* Improve CATEGORIES struct
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com >
* Add tests for registerShortcut()
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com >
* Simplifie code tiny bit
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com >
* Translate ALTERNATE_KEY_NAME
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com >
* Fix `key` usage
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com >
* Export components for tests
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com >
* Write snapshot tests
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com >
2022-01-24 11:33:27 +00:00
Travis Ralston
6712a5b1c5
Parse matrix-schemed URIs ( #7453 )
...
Co-authored-by: J. Ryan Stinnett <jryans@gmail.com >
Co-authored-by: Dariusz Niemczyk <dariuszn@element.io >
Co-authored-by: Timo K <toger5@hotmail.de >
With this pr all href use matrix matrix.to links. As a consequence right-click copy link will always return get you a sharable matrix.to link.
2022-01-20 18:18:47 +01:00
Andy Balaam
2743a75a21
Display general marker on non-self location shares ( #7574 )
2022-01-19 09:33:49 +00:00
Germain
41b9e4aa4f
Implement reply chain fallback for threads backwards compatibility ( #7565 )
2022-01-19 09:06:48 +00:00