diff --git a/cypress/e2e/widgets/layout.spec.ts b/cypress/e2e/widgets/layout.spec.ts index 16470fd5a0be89937a3639586e79db96ea51f0e7..fd6f50c1e0e8e88a62d974c2783de8e9ed7f344b 100644 --- a/cypress/e2e/widgets/layout.spec.ts +++ b/cypress/e2e/widgets/layout.spec.ts @@ -129,4 +129,20 @@ describe("Widget Layout", () => { cy.get('iframe[title="widget"]').invoke("height").should("be.greaterThan", 400); }); + it("open right panel with chat when maximizing widget", () => { + cy.get('iframe[title="widget"]').invoke("height").should("be.lessThan", 250); + cy.findByRole("button", { name: "Maximise" }).click(); + cy.get(".mx_RightPanel").within(() => { + cy.get(".mx_BaseCard_header").should("contain", "Chat"); + }); + }); + it("close right panel with chat when unmaximizing widget", () => { + cy.get('iframe[title="widget"]').invoke("height").should("be.lessThan", 250); + cy.findByRole("button", { name: "Maximise" }).click(); + cy.get(".mx_RightPanel").within(() => { + cy.get(".mx_BaseCard_header").should("contain", "Chat"); + }); + cy.findByRole("button", { name: "Un-maximise" }).click(); + cy.get(".mx_RightPanel").should("not.exist"); + }); }); diff --git a/res/css/views/rooms/_MemberList.pcss b/res/css/views/rooms/_MemberList.pcss index 36010d6200768609f3595afe68d375a46fe5878b..716d8f2b2654e9d88ea1decc65879d77d77090e1 100644 --- a/res/css/views/rooms/_MemberList.pcss +++ b/res/css/views/rooms/_MemberList.pcss @@ -78,5 +78,5 @@ limitations under the License. .mx_MemberList_invite { margin: 0 var(--cpd-space-2x); - width: calc(100% - var(--cpd-space-2x)); + width: calc(100% - var(--cpd-space-4x)); } diff --git a/src/components/structures/RoomView.tsx b/src/components/structures/RoomView.tsx index 8ca3cd42763ebc641665c76ca6991b9ce7d55df8..408c5e40a5ad5f9315abfa918837d6ca1a88f1fe 100644 --- a/src/components/structures/RoomView.tsx +++ b/src/components/structures/RoomView.tsx @@ -539,6 +539,9 @@ export class RoomView extends React.Component<IRoomProps, IRoomState> { if (this.context.widgetLayoutStore.hasMaximisedWidget(this.state.room)) { // Show chat in right panel when a widget is maximised this.context.rightPanelStore.setCard({ phase: RightPanelPhases.Timeline }); + } else { + // Close the chat in right panel when the widget is unmaximised + this.context.rightPanelStore.togglePanel(null); } this.checkWidgets(this.state.room); }; diff --git a/src/stores/widgets/StopGapWidgetDriver.ts b/src/stores/widgets/StopGapWidgetDriver.ts index 6c87cb43376e997049e17c30a2463d11c7b4d81f..c2453ebccf4fafdab0ebd084088c01132cfddd77 100644 --- a/src/stores/widgets/StopGapWidgetDriver.ts +++ b/src/stores/widgets/StopGapWidgetDriver.ts @@ -150,7 +150,7 @@ export class StopGapWidgetDriver extends WidgetDriver { WidgetEventCapability.forStateEvent(EventDirection.Receive, "org.matrix.msc3401.call.member").raw, ); - const sendRecvRoomEvents = ["io.element.call.encryption_key"]; + const sendRecvRoomEvents = ["io.element.call.encryption_keys"]; for (const eventType of sendRecvRoomEvents) { this.allowedCapabilities.add(WidgetEventCapability.forRoomEvent(EventDirection.Send, eventType).raw); this.allowedCapabilities.add(WidgetEventCapability.forRoomEvent(EventDirection.Receive, eventType).raw);