* Disable stickers for local rooms * Use proppull/28788/head^2
parent
dcc12a142d
commit
cc3ace2397
|
@ -51,6 +51,7 @@ import { SettingUpdatedPayload } from "../../../dispatcher/payloads/SettingUpdat
|
||||||
import MessageComposerButtons from './MessageComposerButtons';
|
import MessageComposerButtons from './MessageComposerButtons';
|
||||||
import { ButtonEvent } from '../elements/AccessibleButton';
|
import { ButtonEvent } from '../elements/AccessibleButton';
|
||||||
import { ViewRoomPayload } from "../../../dispatcher/payloads/ViewRoomPayload";
|
import { ViewRoomPayload } from "../../../dispatcher/payloads/ViewRoomPayload";
|
||||||
|
import { isLocalRoom } from '../../../utils/localRoom/isLocalRoom';
|
||||||
|
|
||||||
let instanceCount = 0;
|
let instanceCount = 0;
|
||||||
|
|
||||||
|
@ -350,6 +351,10 @@ export default class MessageComposer extends React.Component<IProps, IState> {
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
private get showStickersButton(): boolean {
|
||||||
|
return this.state.showStickersButton && !isLocalRoom(this.props.room);
|
||||||
|
}
|
||||||
|
|
||||||
public render() {
|
public render() {
|
||||||
const controls = [
|
const controls = [
|
||||||
this.props.e2eStatus ?
|
this.props.e2eStatus ?
|
||||||
|
@ -475,7 +480,7 @@ export default class MessageComposer extends React.Component<IProps, IState> {
|
||||||
setStickerPickerOpen={this.setStickerPickerOpen}
|
setStickerPickerOpen={this.setStickerPickerOpen}
|
||||||
showLocationButton={!window.electron}
|
showLocationButton={!window.electron}
|
||||||
showPollsButton={this.state.showPollsButton}
|
showPollsButton={this.state.showPollsButton}
|
||||||
showStickersButton={this.state.showStickersButton}
|
showStickersButton={this.showStickersButton}
|
||||||
toggleButtonMenu={this.toggleButtonMenu}
|
toggleButtonMenu={this.toggleButtonMenu}
|
||||||
/> }
|
/> }
|
||||||
{ showSendButton && (
|
{ showSendButton && (
|
||||||
|
|
|
@ -28,10 +28,14 @@ import RoomContext from "../../../../src/contexts/RoomContext";
|
||||||
import { IRoomState } from "../../../../src/components/structures/RoomView";
|
import { IRoomState } from "../../../../src/components/structures/RoomView";
|
||||||
import ResizeNotifier from "../../../../src/utils/ResizeNotifier";
|
import ResizeNotifier from "../../../../src/utils/ResizeNotifier";
|
||||||
import { RoomPermalinkCreator } from "../../../../src/utils/permalinks/Permalinks";
|
import { RoomPermalinkCreator } from "../../../../src/utils/permalinks/Permalinks";
|
||||||
|
import { LocalRoom } from "../../../../src/models/LocalRoom";
|
||||||
|
import MessageComposerButtons from "../../../../src/components/views/rooms/MessageComposerButtons";
|
||||||
|
|
||||||
describe("MessageComposer", () => {
|
describe("MessageComposer", () => {
|
||||||
stubClient();
|
stubClient();
|
||||||
const cli = createTestClient();
|
const cli = createTestClient();
|
||||||
|
|
||||||
|
describe("for a Room", () => {
|
||||||
const room = mkStubRoom("!roomId:server", "Room 1", cli);
|
const room = mkStubRoom("!roomId:server", "Room 1", cli);
|
||||||
|
|
||||||
it("Renders a SendMessageComposer and MessageComposerButtons by default", () => {
|
it("Renders a SendMessageComposer and MessageComposerButtons by default", () => {
|
||||||
|
@ -64,12 +68,26 @@ describe("MessageComposer", () => {
|
||||||
expect(wrapper.find("MessageComposerButtons")).toHaveLength(0);
|
expect(wrapper.find("MessageComposerButtons")).toHaveLength(0);
|
||||||
expect(wrapper.find(".mx_MessageComposer_roomReplaced_header")).toHaveLength(1);
|
expect(wrapper.find(".mx_MessageComposer_roomReplaced_header")).toHaveLength(1);
|
||||||
});
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe("for a LocalRoom", () => {
|
||||||
|
const localRoom = new LocalRoom("!room:example.com", cli, cli.getUserId());
|
||||||
|
|
||||||
|
it("should pass the sticker picker disabled prop", () => {
|
||||||
|
const wrapper = wrapAndRender({ room: localRoom });
|
||||||
|
expect(wrapper.find(MessageComposerButtons).props().showStickersButton).toBe(false);
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
function wrapAndRender(props = {}, canSendMessages = true, tombstone?: MatrixEvent): ReactWrapper {
|
function wrapAndRender(
|
||||||
|
props: Partial<React.ComponentProps<typeof MessageComposer>> = {},
|
||||||
|
canSendMessages = true,
|
||||||
|
tombstone?: MatrixEvent,
|
||||||
|
): ReactWrapper {
|
||||||
const mockClient = MatrixClientPeg.get();
|
const mockClient = MatrixClientPeg.get();
|
||||||
const roomId = "myroomid";
|
const roomId = "myroomid";
|
||||||
const room: any = {
|
const room: any = props.room || {
|
||||||
currentState: undefined,
|
currentState: undefined,
|
||||||
roomId,
|
roomId,
|
||||||
client: mockClient,
|
client: mockClient,
|
||||||
|
|
Loading…
Reference in New Issue