Skip to content

Commit 66ad3e0

Browse files
committed
Merge tag 'v3.53.0' into sc
* Device manager - scroll to filtered list from security recommendations ([\matrix-org#9227](matrix-org#9227)). Contributed by @kerryarchibald. * Device manager - updated dropdown style in filtered device list ([\matrix-org#9226](matrix-org#9226)). Contributed by @kerryarchibald. * Device manager - device type and verification icons on device tile ([\matrix-org#9197](matrix-org#9197)). Contributed by @kerryarchibald. * Ignore unreads in low priority rooms in the space panel ([\matrix-org#6518](matrix-org#6518)). Fixes element-hq/element-web#16836. * Release message right-click context menu out of labs ([\matrix-org#8613](matrix-org#8613)). * Device manager - expandable session details in device list ([\matrix-org#9188](matrix-org#9188)). Contributed by @kerryarchibald. * Device manager - device list filtering ([\matrix-org#9181](matrix-org#9181)). Contributed by @kerryarchibald. * Device manager - add verification details to session details ([\matrix-org#9187](matrix-org#9187)). Contributed by @kerryarchibald. * Device manager - current session expandable details ([\matrix-org#9185](matrix-org#9185)). Contributed by @kerryarchibald. * Device manager - security recommendations section ([\matrix-org#9179](matrix-org#9179)). Contributed by @kerryarchibald. * The Welcome Home Screen: Return Button ([\matrix-org#9089](matrix-org#9089)). Fixes element-hq/element-web#22917. Contributed by @justjanne. * Device manager - label devices as inactive ([\matrix-org#9175](matrix-org#9175)). Contributed by @kerryarchibald. * Device manager - other sessions list ([\matrix-org#9155](matrix-org#9155)). Contributed by @kerryarchibald. * Implement MSC3846: Allowing widgets to access TURN servers ([\matrix-org#9061](matrix-org#9061)). * Allow widgets to send/receive to-device messages ([\matrix-org#8885](matrix-org#8885)). * Add super cool feature ([\matrix-org#9222](matrix-org#9222)). Contributed by @gefgu. * Make use of js-sdk roomNameGenerator to handle i18n for generated room names ([\matrix-org#9209](matrix-org#9209)). Fixes element-hq/element-web#21369. * Fix progress bar regression throughout the app ([\matrix-org#9219](matrix-org#9219)). Fixes element-hq/element-web#23121. * Reuse empty string & space string logic for event types in devtools ([\matrix-org#9218](matrix-org#9218)). Fixes element-hq/element-web#23115. * Reduce amount of requests done by the onboarding task list ([\matrix-org#9194](matrix-org#9194)). Fixes element-hq/element-web#23085. Contributed by @justjanne. * Avoid hardcoding branding in user onboarding ([\matrix-org#9206](matrix-org#9206)). Fixes element-hq/element-web#23111. Contributed by @justjanne. * End jitsi call when member is banned ([\matrix-org#8879](matrix-org#8879)). Contributed by @maheichyk. * Fix context menu being opened when clicking message action bar buttons ([\matrix-org#9200](matrix-org#9200)). Fixes element-hq/element-web#22279 and element-hq/element-web#23100. * Add gap between checkbox and text in report dialog following the same pattern (8px) used in the gap between the two buttons. It fixes element-hq/element-web#23060 ([\matrix-org#9195](matrix-org#9195)). Contributed by @gefgu. * Fix url preview AXE and layout issue & add percy test ([\matrix-org#9189](matrix-org#9189)). Fixes element-hq/element-web#23083. * Wrap long space names ([\matrix-org#9201](matrix-org#9201)). Fixes element-hq/element-web#23095. * Attempt to fix `Failed to execute 'removeChild' on 'Node'` ([\matrix-org#9196](matrix-org#9196)). * Fix soft crash around space hierarchy changing between spaces ([\matrix-org#9191](matrix-org#9191)). Fixes matrix-org/element-web-rageshakes#14613. * Fix soft crash around room view store metrics ([\matrix-org#9190](matrix-org#9190)). Fixes matrix-org/element-web-rageshakes#14361. * Fix the same person appearing multiple times when searching for them. ([\matrix-org#9177](matrix-org#9177)). Fixes element-hq/element-web#22851. * Fix space panel subspace indentation going missing ([\matrix-org#9167](matrix-org#9167)). Fixes element-hq/element-web#23049. * Fix invisible power levels tile when showing hidden events ([\matrix-org#9162](matrix-org#9162)). Fixes element-hq/element-web#23013. * Space panel accessibility improvements ([\matrix-org#9157](matrix-org#9157)). Fixes element-hq/element-web#22995. * Fix inverted logic for showing UserWelcomeTop component ([\matrix-org#9164](matrix-org#9164)). Fixes element-hq/element-web#23037.
2 parents d577372 + e064f05 commit 66ad3e0

File tree

163 files changed

+8570
-1087
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

163 files changed

+8570
-1087
lines changed

CHANGELOG.md

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,44 @@
1+
Changes in [3.53.0](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v3.53.0) (2022-08-31)
2+
=====================================================================================================
3+
4+
## ✨ Features
5+
* Device manager - scroll to filtered list from security recommendations ([\#9227](https://github.com/matrix-org/matrix-react-sdk/pull/9227)). Contributed by @kerryarchibald.
6+
* Device manager - updated dropdown style in filtered device list ([\#9226](https://github.com/matrix-org/matrix-react-sdk/pull/9226)). Contributed by @kerryarchibald.
7+
* Device manager - device type and verification icons on device tile ([\#9197](https://github.com/matrix-org/matrix-react-sdk/pull/9197)). Contributed by @kerryarchibald.
8+
* Ignore unreads in low priority rooms in the space panel ([\#6518](https://github.com/matrix-org/matrix-react-sdk/pull/6518)). Fixes vector-im/element-web#16836.
9+
* Release message right-click context menu out of labs ([\#8613](https://github.com/matrix-org/matrix-react-sdk/pull/8613)).
10+
* Device manager - expandable session details in device list ([\#9188](https://github.com/matrix-org/matrix-react-sdk/pull/9188)). Contributed by @kerryarchibald.
11+
* Device manager - device list filtering ([\#9181](https://github.com/matrix-org/matrix-react-sdk/pull/9181)). Contributed by @kerryarchibald.
12+
* Device manager - add verification details to session details ([\#9187](https://github.com/matrix-org/matrix-react-sdk/pull/9187)). Contributed by @kerryarchibald.
13+
* Device manager - current session expandable details ([\#9185](https://github.com/matrix-org/matrix-react-sdk/pull/9185)). Contributed by @kerryarchibald.
14+
* Device manager - security recommendations section ([\#9179](https://github.com/matrix-org/matrix-react-sdk/pull/9179)). Contributed by @kerryarchibald.
15+
* The Welcome Home Screen: Return Button ([\#9089](https://github.com/matrix-org/matrix-react-sdk/pull/9089)). Fixes vector-im/element-web#22917. Contributed by @justjanne.
16+
* Device manager - label devices as inactive ([\#9175](https://github.com/matrix-org/matrix-react-sdk/pull/9175)). Contributed by @kerryarchibald.
17+
* Device manager - other sessions list ([\#9155](https://github.com/matrix-org/matrix-react-sdk/pull/9155)). Contributed by @kerryarchibald.
18+
* Implement MSC3846: Allowing widgets to access TURN servers ([\#9061](https://github.com/matrix-org/matrix-react-sdk/pull/9061)).
19+
* Allow widgets to send/receive to-device messages ([\#8885](https://github.com/matrix-org/matrix-react-sdk/pull/8885)).
20+
21+
## 🐛 Bug Fixes
22+
* Add super cool feature ([\#9222](https://github.com/matrix-org/matrix-react-sdk/pull/9222)). Contributed by @gefgu.
23+
* Make use of js-sdk roomNameGenerator to handle i18n for generated room names ([\#9209](https://github.com/matrix-org/matrix-react-sdk/pull/9209)). Fixes vector-im/element-web#21369.
24+
* Fix progress bar regression throughout the app ([\#9219](https://github.com/matrix-org/matrix-react-sdk/pull/9219)). Fixes vector-im/element-web#23121.
25+
* Reuse empty string & space string logic for event types in devtools ([\#9218](https://github.com/matrix-org/matrix-react-sdk/pull/9218)). Fixes vector-im/element-web#23115.
26+
* Reduce amount of requests done by the onboarding task list ([\#9194](https://github.com/matrix-org/matrix-react-sdk/pull/9194)). Fixes vector-im/element-web#23085. Contributed by @justjanne.
27+
* Avoid hardcoding branding in user onboarding ([\#9206](https://github.com/matrix-org/matrix-react-sdk/pull/9206)). Fixes vector-im/element-web#23111. Contributed by @justjanne.
28+
* End jitsi call when member is banned ([\#8879](https://github.com/matrix-org/matrix-react-sdk/pull/8879)). Contributed by @maheichyk.
29+
* Fix context menu being opened when clicking message action bar buttons ([\#9200](https://github.com/matrix-org/matrix-react-sdk/pull/9200)). Fixes vector-im/element-web#22279 and vector-im/element-web#23100.
30+
* Add gap between checkbox and text in report dialog following the same pattern (8px) used in the gap between the two buttons. It fixes vector-im/element-web#23060 ([\#9195](https://github.com/matrix-org/matrix-react-sdk/pull/9195)). Contributed by @gefgu.
31+
* Fix url preview AXE and layout issue & add percy test ([\#9189](https://github.com/matrix-org/matrix-react-sdk/pull/9189)). Fixes vector-im/element-web#23083.
32+
* Wrap long space names ([\#9201](https://github.com/matrix-org/matrix-react-sdk/pull/9201)). Fixes vector-im/element-web#23095.
33+
* Attempt to fix `Failed to execute 'removeChild' on 'Node'` ([\#9196](https://github.com/matrix-org/matrix-react-sdk/pull/9196)).
34+
* Fix soft crash around space hierarchy changing between spaces ([\#9191](https://github.com/matrix-org/matrix-react-sdk/pull/9191)). Fixes matrix-org/element-web-rageshakes#14613.
35+
* Fix soft crash around room view store metrics ([\#9190](https://github.com/matrix-org/matrix-react-sdk/pull/9190)). Fixes matrix-org/element-web-rageshakes#14361.
36+
* Fix the same person appearing multiple times when searching for them. ([\#9177](https://github.com/matrix-org/matrix-react-sdk/pull/9177)). Fixes vector-im/element-web#22851.
37+
* Fix space panel subspace indentation going missing ([\#9167](https://github.com/matrix-org/matrix-react-sdk/pull/9167)). Fixes vector-im/element-web#23049.
38+
* Fix invisible power levels tile when showing hidden events ([\#9162](https://github.com/matrix-org/matrix-react-sdk/pull/9162)). Fixes vector-im/element-web#23013.
39+
* Space panel accessibility improvements ([\#9157](https://github.com/matrix-org/matrix-react-sdk/pull/9157)). Fixes vector-im/element-web#22995.
40+
* Fix inverted logic for showing UserWelcomeTop component ([\#9164](https://github.com/matrix-org/matrix-react-sdk/pull/9164)). Fixes vector-im/element-web#23037.
41+
142
Changes in [3.52.0](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v3.52.0) (2022-08-16)
243
=====================================================================================================
344

cypress/e2e/spaces/spaces.spec.ts

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,4 +237,42 @@ describe("Spaces", () => {
237237
cy.contains(".mx_SpaceHierarchy_roomTile", "Gaming").should("exist");
238238
});
239239
});
240+
241+
it("should render subspaces in the space panel only when expanded", () => {
242+
cy.injectAxe();
243+
244+
cy.createSpace({
245+
name: "Child Space",
246+
initial_state: [],
247+
}).then(spaceId => {
248+
cy.createSpace({
249+
name: "Root Space",
250+
initial_state: [
251+
spaceChildInitialState(spaceId),
252+
],
253+
}).as("spaceId");
254+
});
255+
cy.get('.mx_SpacePanel .mx_SpaceButton[aria-label="Root Space"]').should("exist");
256+
cy.get('.mx_SpacePanel .mx_SpaceButton[aria-label="Child Space"]').should("not.exist");
257+
258+
const axeOptions = {
259+
rules: {
260+
// Disable this check as it triggers on nested roving tab index elements which are in practice fine
261+
'nested-interactive': {
262+
enabled: false,
263+
},
264+
},
265+
};
266+
cy.checkA11y(undefined, axeOptions);
267+
cy.get(".mx_SpacePanel").percySnapshotElement("Space panel collapsed", { widths: [68] });
268+
269+
cy.get(".mx_SpaceButton_toggleCollapse").click({ force: true });
270+
cy.get(".mx_SpacePanel:not(.collapsed)").should("exist");
271+
272+
cy.contains(".mx_SpaceItem", "Root Space").should("exist")
273+
.contains(".mx_SpaceItem", "Child Space").should("exist");
274+
275+
cy.checkA11y(undefined, axeOptions);
276+
cy.get(".mx_SpacePanel").percySnapshotElement("Space panel expanded", { widths: [258] });
277+
});
240278
});

cypress/e2e/spotlight/spotlight.spec.ts

Lines changed: 52 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ Cypress.Commands.add("startDM", (name: string) => {
114114
cy.openSpotlightDialog().within(() => {
115115
cy.spotlightFilter(Filter.People);
116116
cy.spotlightSearch().clear().type(name);
117+
cy.wait(1000); // wait for the dialog code to settle
117118
cy.get(".mx_Spinner").should("not.exist");
118119
cy.spotlightResults().should("have.length", 1);
119120
cy.spotlightResults().eq(0).should("contain", name);
@@ -216,6 +217,7 @@ describe("Spotlight", () => {
216217
it("should find joined rooms", () => {
217218
cy.openSpotlightDialog().within(() => {
218219
cy.spotlightSearch().clear().type(room1Name);
220+
cy.wait(1000); // wait for the dialog code to settle
219221
cy.spotlightResults().should("have.length", 1);
220222
cy.spotlightResults().eq(0).should("contain", room1Name);
221223
cy.spotlightResults().eq(0).click();
@@ -229,6 +231,7 @@ describe("Spotlight", () => {
229231
cy.openSpotlightDialog().within(() => {
230232
cy.spotlightFilter(Filter.PublicRooms);
231233
cy.spotlightSearch().clear().type(room1Name);
234+
cy.wait(1000); // wait for the dialog code to settle
232235
cy.spotlightResults().should("have.length", 1);
233236
cy.spotlightResults().eq(0).should("contain", room1Name);
234237
cy.spotlightResults().eq(0).should("contain", "View");
@@ -243,6 +246,7 @@ describe("Spotlight", () => {
243246
cy.openSpotlightDialog().within(() => {
244247
cy.spotlightFilter(Filter.PublicRooms);
245248
cy.spotlightSearch().clear().type(room2Name);
249+
cy.wait(1000); // wait for the dialog code to settle
246250
cy.spotlightResults().should("have.length", 1);
247251
cy.spotlightResults().eq(0).should("contain", room2Name);
248252
cy.spotlightResults().eq(0).should("contain", "Join");
@@ -258,6 +262,7 @@ describe("Spotlight", () => {
258262
cy.openSpotlightDialog().within(() => {
259263
cy.spotlightFilter(Filter.PublicRooms);
260264
cy.spotlightSearch().clear().type(room3Name);
265+
cy.wait(1000); // wait for the dialog code to settle
261266
cy.spotlightResults().should("have.length", 1);
262267
cy.spotlightResults().eq(0).should("contain", room3Name);
263268
cy.spotlightResults().eq(0).should("contain", "View");
@@ -296,6 +301,7 @@ describe("Spotlight", () => {
296301
cy.openSpotlightDialog().within(() => {
297302
cy.spotlightFilter(Filter.People);
298303
cy.spotlightSearch().clear().type(bot1Name);
304+
cy.wait(1000); // wait for the dialog code to settle
299305
cy.spotlightResults().should("have.length", 1);
300306
cy.spotlightResults().eq(0).should("contain", bot1Name);
301307
cy.spotlightResults().eq(0).click();
@@ -308,6 +314,7 @@ describe("Spotlight", () => {
308314
cy.openSpotlightDialog().within(() => {
309315
cy.spotlightFilter(Filter.People);
310316
cy.spotlightSearch().clear().type(bot2Name);
317+
cy.wait(1000); // wait for the dialog code to settle
311318
cy.spotlightResults().should("have.length", 1);
312319
cy.spotlightResults().eq(0).should("contain", bot2Name);
313320
cy.spotlightResults().eq(0).click();
@@ -324,6 +331,7 @@ describe("Spotlight", () => {
324331
cy.openSpotlightDialog().within(() => {
325332
cy.spotlightFilter(Filter.People);
326333
cy.spotlightSearch().clear().type(bot2Name);
334+
cy.wait(1000); // wait for the dialog code to settle
327335
cy.spotlightResults().should("have.length", 1);
328336
cy.spotlightResults().eq(0).should("contain", bot2Name);
329337
cy.spotlightResults().eq(0).click();
@@ -341,34 +349,61 @@ describe("Spotlight", () => {
341349
cy.get(".mx_RoomSublist[aria-label=People]").should("contain", bot2Name);
342350

343351
// Invite BotBob into existing DM with ByteBot
344-
cy.getDmRooms(bot2.getUserId()).then(dmRooms => dmRooms[0])
345-
.then(groupDmId => cy.inviteUser(groupDmId, bot1.getUserId()))
346-
.then(() => {
347-
cy.roomHeaderName().should("contain", `${bot1Name} and ${bot2Name}`);
348-
cy.get(".mx_RoomSublist[aria-label=People]").should("contain", `${bot1Name} and ${bot2Name}`);
352+
cy.getDmRooms(bot2.getUserId())
353+
.should("have.length", 1)
354+
.then(dmRooms => cy.getClient().then(client => client.getRoom(dmRooms[0])))
355+
.then(groupDm => {
356+
cy.inviteUser(groupDm.roomId, bot1.getUserId());
357+
cy.roomHeaderName().should(($element) =>
358+
expect($element.get(0).innerText).contains(groupDm.name));
359+
cy.get(".mx_RoomSublist[aria-label=People]").should(($element) =>
360+
expect($element.get(0).innerText).contains(groupDm.name));
361+
362+
// Search for BotBob by id, should return group DM and user
363+
cy.openSpotlightDialog().within(() => {
364+
cy.spotlightFilter(Filter.People);
365+
cy.spotlightSearch().clear().type(bot1.getUserId());
366+
cy.wait(1000); // wait for the dialog code to settle
367+
cy.spotlightResults().should("have.length", 2);
368+
cy.spotlightResults().eq(0).should("contain", groupDm.name);
369+
});
370+
371+
// Search for ByteBot by id, should return group DM and user
372+
cy.openSpotlightDialog().within(() => {
373+
cy.spotlightFilter(Filter.People);
374+
cy.spotlightSearch().clear().type(bot2.getUserId());
375+
cy.wait(1000); // wait for the dialog code to settle
376+
cy.spotlightResults().should("have.length", 2);
377+
cy.spotlightResults().eq(0).should("contain", groupDm.name);
378+
});
349379
});
380+
});
350381

351-
// Search for BotBob by id, should return group DM and user
382+
// Test against https://github.com/vector-im/element-web/issues/22851
383+
it("should show each person result only once", () => {
352384
cy.openSpotlightDialog().within(() => {
353385
cy.spotlightFilter(Filter.People);
354-
cy.spotlightSearch().clear().type(bot1.getUserId());
355-
cy.spotlightResults().should("have.length", 2);
356-
cy.spotlightResults().eq(0).should("contain", `${bot1Name} and ${bot2Name}`);
357-
});
358386

359-
// Search for ByteBot by id, should return group DM and user
360-
cy.openSpotlightDialog().within(() => {
361-
cy.spotlightFilter(Filter.People);
362-
cy.spotlightSearch().clear().type(bot2.getUserId());
363-
cy.spotlightResults().should("have.length", 2);
364-
cy.spotlightResults().eq(0).should("contain", `${bot1Name} and ${bot2Name}`);
387+
// 2 rounds of search to simulate the bug conditions. Specifically, the first search
388+
// should have 1 result (not 2) and the second search should also have 1 result (instead
389+
// of the super buggy 3 described by https://github.com/vector-im/element-web/issues/22851)
390+
//
391+
// We search for user ID to trigger the profile lookup within the dialog.
392+
for (let i = 0; i < 2; i++) {
393+
cy.log("Iteration: " + i);
394+
cy.spotlightSearch().clear().type(bot1.getUserId());
395+
cy.wait(1000); // wait for the dialog code to settle
396+
cy.spotlightResults().should("have.length", 1);
397+
cy.spotlightResults().eq(0).should("contain", bot1.getUserId());
398+
}
365399
});
366400
});
367401

368402
it("should allow opening group chat dialog", () => {
369403
cy.openSpotlightDialog().within(() => {
370404
cy.spotlightFilter(Filter.People);
371405
cy.spotlightSearch().clear().type(bot2Name);
406+
cy.wait(1000); // wait for the dialog code to settle
372407
cy.spotlightResults().should("have.length", 1);
373408
cy.spotlightResults().eq(0).should("contain", bot2Name);
374409
cy.get(".mx_SpotlightDialog_startGroupChat").should("contain", "Start a group chat");
@@ -390,6 +425,7 @@ describe("Spotlight", () => {
390425
cy.openSpotlightDialog().within(() => {
391426
cy.spotlightFilter(Filter.People);
392427
cy.spotlightSearch().clear().type(bot1Name);
428+
cy.wait(1000); // wait for the dialog code to settle
393429
cy.get(".mx_Spinner").should("not.exist");
394430
cy.spotlightResults().should("have.length", 1);
395431
});

0 commit comments

Comments
 (0)