MessageContextMenu: update once the message is sent (#10950)
Fixes a flaky cypress test where the "Remove" option was not appearingpull/28788/head^2
parent
3623643248
commit
60e1349eaa
|
@ -17,7 +17,7 @@ limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import React, { createRef, useContext } from "react";
|
import React, { createRef, useContext } from "react";
|
||||||
import { EventStatus, MatrixEvent } from "matrix-js-sdk/src/models/event";
|
import { EventStatus, MatrixEvent, MatrixEventEvent } from "matrix-js-sdk/src/models/event";
|
||||||
import { EventType, RelationType } from "matrix-js-sdk/src/@types/event";
|
import { EventType, RelationType } from "matrix-js-sdk/src/@types/event";
|
||||||
import { Relations } from "matrix-js-sdk/src/models/relations";
|
import { Relations } from "matrix-js-sdk/src/models/relations";
|
||||||
import { RoomMemberEvent } from "matrix-js-sdk/src/models/room-member";
|
import { RoomMemberEvent } from "matrix-js-sdk/src/models/room-member";
|
||||||
|
@ -145,6 +145,11 @@ export default class MessageContextMenu extends React.Component<IProps, IState>
|
||||||
|
|
||||||
public componentDidMount(): void {
|
public componentDidMount(): void {
|
||||||
MatrixClientPeg.get().on(RoomMemberEvent.PowerLevel, this.checkPermissions);
|
MatrixClientPeg.get().on(RoomMemberEvent.PowerLevel, this.checkPermissions);
|
||||||
|
|
||||||
|
// re-check the permissions on send progress (`maySendRedactionForEvent` only returns true for events that have
|
||||||
|
// been fully sent and echoed back, and we want to ensure the "Remove" option is added once that happens.)
|
||||||
|
this.props.mxEvent.on(MatrixEventEvent.Status, this.checkPermissions);
|
||||||
|
|
||||||
this.checkPermissions();
|
this.checkPermissions();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -153,6 +158,7 @@ export default class MessageContextMenu extends React.Component<IProps, IState>
|
||||||
if (cli) {
|
if (cli) {
|
||||||
cli.removeListener(RoomMemberEvent.PowerLevel, this.checkPermissions);
|
cli.removeListener(RoomMemberEvent.PowerLevel, this.checkPermissions);
|
||||||
}
|
}
|
||||||
|
this.props.mxEvent.removeListener(MatrixEventEvent.Status, this.checkPermissions);
|
||||||
}
|
}
|
||||||
|
|
||||||
private checkPermissions = (): void => {
|
private checkPermissions = (): void => {
|
||||||
|
|
Loading…
Reference in New Issue