Merge branch 'develop' into travis/msc2873
This commit is contained in:
commit
6ccb0d487a
13 changed files with 189 additions and 19 deletions
110
CHANGELOG.md
110
CHANGELOG.md
|
@ -1,3 +1,113 @@
|
|||
Changes in [3.21.0](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v3.21.0) (2021-05-17)
|
||||
=====================================================================================================
|
||||
[Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v3.21.0-rc.1...v3.21.0)
|
||||
|
||||
## Security notice
|
||||
|
||||
matrix-react-sdk 3.21.0 fixes a low severity issue (GHSA-8796-gc9j-63rv)
|
||||
related to file upload. When uploading a file, the local file preview can lead
|
||||
to execution of scripts embedded in the uploaded file, but only after several
|
||||
user interactions to open the preview in a separate tab. This only impacts the
|
||||
local user while in the process of uploading. It cannot be exploited remotely
|
||||
or by other users. Thanks to [Muhammad Zaid Ghifari](https://github.com/MR-ZHEEV)
|
||||
for responsibly disclosing this via Matrix's Security Disclosure Policy.
|
||||
|
||||
## All changes
|
||||
|
||||
* Upgrade to JS SDK 11.0.0
|
||||
* [Release] Add missing space on beta feedback dialog
|
||||
[\#6019](https://github.com/matrix-org/matrix-react-sdk/pull/6019)
|
||||
* [Release] Add feedback mechanism for beta features, namely Spaces
|
||||
[\#6013](https://github.com/matrix-org/matrix-react-sdk/pull/6013)
|
||||
* Add feedback mechanism for beta features, namely Spaces
|
||||
[\#6012](https://github.com/matrix-org/matrix-react-sdk/pull/6012)
|
||||
|
||||
Changes in [3.21.0-rc.1](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v3.21.0-rc.1) (2021-05-11)
|
||||
===============================================================================================================
|
||||
[Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v3.20.0...v3.21.0-rc.1)
|
||||
|
||||
* Upgrade to JS SDK 11.0.0-rc.1
|
||||
* Add disclaimer about subspaces being experimental in add existing dialog
|
||||
[\#5978](https://github.com/matrix-org/matrix-react-sdk/pull/5978)
|
||||
* Spaces Beta release
|
||||
[\#5933](https://github.com/matrix-org/matrix-react-sdk/pull/5933)
|
||||
* Improve permissions error when adding new server to room directory
|
||||
[\#6009](https://github.com/matrix-org/matrix-react-sdk/pull/6009)
|
||||
* Allow user to progress through space creation & setup using Enter
|
||||
[\#6006](https://github.com/matrix-org/matrix-react-sdk/pull/6006)
|
||||
* Upgrade sanitize types
|
||||
[\#6008](https://github.com/matrix-org/matrix-react-sdk/pull/6008)
|
||||
* Upgrade `cheerio` and resolve type errors
|
||||
[\#6007](https://github.com/matrix-org/matrix-react-sdk/pull/6007)
|
||||
* Add slash commands support to edit message composer
|
||||
[\#5865](https://github.com/matrix-org/matrix-react-sdk/pull/5865)
|
||||
* Fix the two todays problem
|
||||
[\#5940](https://github.com/matrix-org/matrix-react-sdk/pull/5940)
|
||||
* Switch the Home Space out for an All rooms space
|
||||
[\#5969](https://github.com/matrix-org/matrix-react-sdk/pull/5969)
|
||||
* Show device ID in UserInfo when there is no device name
|
||||
[\#5985](https://github.com/matrix-org/matrix-react-sdk/pull/5985)
|
||||
* Switch back to release version of `sanitize-html`
|
||||
[\#6005](https://github.com/matrix-org/matrix-react-sdk/pull/6005)
|
||||
* Bump hosted-git-info from 2.8.8 to 2.8.9
|
||||
[\#5998](https://github.com/matrix-org/matrix-react-sdk/pull/5998)
|
||||
* Don't use the event's metadata to calc the scale of an image
|
||||
[\#5982](https://github.com/matrix-org/matrix-react-sdk/pull/5982)
|
||||
* Adjust MIME type of upload confirmation if needed
|
||||
[\#5981](https://github.com/matrix-org/matrix-react-sdk/pull/5981)
|
||||
* Forbid redaction of encryption events
|
||||
[\#5991](https://github.com/matrix-org/matrix-react-sdk/pull/5991)
|
||||
* Fix voice message playback being squished up against send button
|
||||
[\#5988](https://github.com/matrix-org/matrix-react-sdk/pull/5988)
|
||||
* Improve style of notification badges on the space panel
|
||||
[\#5983](https://github.com/matrix-org/matrix-react-sdk/pull/5983)
|
||||
* Add dev dependency for parse5 typings
|
||||
[\#5990](https://github.com/matrix-org/matrix-react-sdk/pull/5990)
|
||||
* Iterate Spaces admin UX around room management
|
||||
[\#5977](https://github.com/matrix-org/matrix-react-sdk/pull/5977)
|
||||
* Guard all isSpaceRoom calls behind the labs flag
|
||||
[\#5979](https://github.com/matrix-org/matrix-react-sdk/pull/5979)
|
||||
* Bump lodash from 4.17.20 to 4.17.21
|
||||
[\#5986](https://github.com/matrix-org/matrix-react-sdk/pull/5986)
|
||||
* Bump lodash from 4.17.19 to 4.17.21 in /test/end-to-end-tests
|
||||
[\#5987](https://github.com/matrix-org/matrix-react-sdk/pull/5987)
|
||||
* Bump ua-parser-js from 0.7.23 to 0.7.28
|
||||
[\#5984](https://github.com/matrix-org/matrix-react-sdk/pull/5984)
|
||||
* Update visual style of plain files in the timeline
|
||||
[\#5971](https://github.com/matrix-org/matrix-react-sdk/pull/5971)
|
||||
* Support for multiple streams (not MSC3077)
|
||||
[\#5833](https://github.com/matrix-org/matrix-react-sdk/pull/5833)
|
||||
* Update space ordering behaviour to match updates in MSC
|
||||
[\#5963](https://github.com/matrix-org/matrix-react-sdk/pull/5963)
|
||||
* Improve performance of search all spaces and space switching
|
||||
[\#5976](https://github.com/matrix-org/matrix-react-sdk/pull/5976)
|
||||
* Update colours and sizing for voice messages
|
||||
[\#5970](https://github.com/matrix-org/matrix-react-sdk/pull/5970)
|
||||
* Update link to Android SDK
|
||||
[\#5973](https://github.com/matrix-org/matrix-react-sdk/pull/5973)
|
||||
* Add cleanup functions for image view
|
||||
[\#5962](https://github.com/matrix-org/matrix-react-sdk/pull/5962)
|
||||
* Add a note about sharing your IP in P2P calls
|
||||
[\#5961](https://github.com/matrix-org/matrix-react-sdk/pull/5961)
|
||||
* Only aggregate DM notifications on the Space Panel in the Home Space
|
||||
[\#5968](https://github.com/matrix-org/matrix-react-sdk/pull/5968)
|
||||
* Add retry mechanism and progress bar to add existing to space dialog
|
||||
[\#5975](https://github.com/matrix-org/matrix-react-sdk/pull/5975)
|
||||
* Warn on access token reveal
|
||||
[\#5755](https://github.com/matrix-org/matrix-react-sdk/pull/5755)
|
||||
* Fix newly joined room appearing under the wrong space
|
||||
[\#5945](https://github.com/matrix-org/matrix-react-sdk/pull/5945)
|
||||
* Early rendering for voice messages in the timeline
|
||||
[\#5955](https://github.com/matrix-org/matrix-react-sdk/pull/5955)
|
||||
* Calculate the real waveform in the Playback class for voice messages
|
||||
[\#5956](https://github.com/matrix-org/matrix-react-sdk/pull/5956)
|
||||
* Don't recurse on arrayFastResample
|
||||
[\#5957](https://github.com/matrix-org/matrix-react-sdk/pull/5957)
|
||||
* Support a dark theme for voice messages
|
||||
[\#5958](https://github.com/matrix-org/matrix-react-sdk/pull/5958)
|
||||
* Handle no/blocked microphones in voice messages
|
||||
[\#5959](https://github.com/matrix-org/matrix-react-sdk/pull/5959)
|
||||
|
||||
Changes in [3.20.0](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v3.20.0) (2021-05-10)
|
||||
=====================================================================================================
|
||||
[Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v3.20.0-rc.1...v3.20.0)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "matrix-react-sdk",
|
||||
"version": "3.20.0",
|
||||
"version": "3.21.0",
|
||||
"description": "SDK for matrix.org using React",
|
||||
"author": "matrix.org",
|
||||
"repository": {
|
||||
|
|
|
@ -20,7 +20,8 @@ limitations under the License.
|
|||
|
||||
.mx_ReactionsRow_addReactionButton {
|
||||
position: relative;
|
||||
display: none; // show on hover of the .mx_EventTile
|
||||
display: inline-block;
|
||||
visibility: hidden; // show on hover of the .mx_EventTile
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
vertical-align: middle;
|
||||
|
@ -39,7 +40,7 @@ limitations under the License.
|
|||
}
|
||||
|
||||
&.mx_ReactionsRow_addReactionButton_active {
|
||||
display: inline-block; // keep showing whilst the context menu is shown
|
||||
visibility: visible; // keep showing whilst the context menu is shown
|
||||
}
|
||||
|
||||
&:hover, &.mx_ReactionsRow_addReactionButton_active {
|
||||
|
@ -51,7 +52,7 @@ limitations under the License.
|
|||
}
|
||||
|
||||
.mx_EventTile:hover .mx_ReactionsRow_addReactionButton {
|
||||
display: inline-block;
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
.mx_ReactionsRow_showAll {
|
||||
|
|
|
@ -27,7 +27,7 @@ import CallMediaHandler from '../../CallMediaHandler';
|
|||
import { fixupColorFonts } from '../../utils/FontManager';
|
||||
import * as sdk from '../../index';
|
||||
import dis from '../../dispatcher/dispatcher';
|
||||
import {MatrixClientPeg, IMatrixClientCreds} from '../../MatrixClientPeg';
|
||||
import { IMatrixClientCreds } from '../../MatrixClientPeg';
|
||||
import SettingsStore from "../../settings/SettingsStore";
|
||||
|
||||
import TagOrderActions from '../../actions/TagOrderActions';
|
||||
|
@ -219,16 +219,6 @@ class LoggedInView extends React.Component<IProps, IState> {
|
|||
});
|
||||
};
|
||||
|
||||
// Child components assume that the client peg will not be null, so give them some
|
||||
// sort of assurance here by only allowing a re-render if the client is truthy.
|
||||
//
|
||||
// This is required because `LoggedInView` maintains its own state and if this state
|
||||
// updates after the client peg has been made null (during logout), then it will
|
||||
// attempt to re-render and the children will throw errors.
|
||||
shouldComponentUpdate() {
|
||||
return Boolean(MatrixClientPeg.get());
|
||||
}
|
||||
|
||||
canResetTimelineInRoom = (roomId) => {
|
||||
if (!this._roomView.current) {
|
||||
return true;
|
||||
|
|
|
@ -473,7 +473,7 @@ export default class MessagePanel extends React.Component {
|
|||
}
|
||||
|
||||
get _roomHasPendingEdit() {
|
||||
return localStorage.getItem(`mx_edit_room_${this.props.room.roomId}`);
|
||||
return this.props.room && localStorage.getItem(`mx_edit_room_${this.props.room.roomId}`);
|
||||
}
|
||||
|
||||
_getEventTiles() {
|
||||
|
|
|
@ -217,6 +217,7 @@ export default class ServerPickerDialog extends React.PureComponent<IProps, ISta
|
|||
value={this.state.otherHomeserver}
|
||||
validateOnChange={false}
|
||||
validateOnFocus={false}
|
||||
id="mx_homeserverInput"
|
||||
/>
|
||||
</StyledRadioButton>
|
||||
<p>
|
||||
|
|
|
@ -345,6 +345,7 @@ export default class AccessSecretStorageDialog extends React.PureComponent<IProp
|
|||
<form className="mx_AccessSecretStorageDialog_primaryContainer" onSubmit={this.onPassPhraseNext}>
|
||||
<input
|
||||
type="password"
|
||||
id="mx_passPhraseInput"
|
||||
className="mx_AccessSecretStorageDialog_passPhraseInput"
|
||||
onChange={this.onPassPhraseChange}
|
||||
value={this.state.passPhrase}
|
||||
|
|
|
@ -50,6 +50,10 @@ const ReactButton = ({ mxEvent, reactions }: IProps) => {
|
|||
})}
|
||||
title={_t("Add reaction")}
|
||||
onClick={openMenu}
|
||||
onContextMenu={e => {
|
||||
e.preventDefault();
|
||||
openMenu();
|
||||
}}
|
||||
isExpanded={menuDisplayed}
|
||||
inputRef={button}
|
||||
/>
|
||||
|
@ -174,6 +178,8 @@ export default class ReactionsRow extends React.PureComponent<IProps, IState> {
|
|||
/>;
|
||||
}).filter(item => !!item);
|
||||
|
||||
if (!items.length) return null;
|
||||
|
||||
// Show the first MAX_ITEMS if there are MAX_ITEMS + 1 or more items.
|
||||
// The "+ 1" ensure that the "show all" reveals something that takes up
|
||||
// more space than the button itself.
|
||||
|
|
|
@ -600,6 +600,10 @@
|
|||
"See when the avatar changes in this room": "See when the avatar changes in this room",
|
||||
"Change the avatar of your active room": "Change the avatar of your active room",
|
||||
"See when the avatar changes in your active room": "See when the avatar changes in your active room",
|
||||
"Kick, ban, or invite people to this room, and make you leave": "Kick, ban, or invite people to this room, and make you leave",
|
||||
"See when people join, leave, or are invited to this room": "See when people join, leave, or are invited to this room",
|
||||
"Kick, ban, or invite people to your active room, and make you leave": "Kick, ban, or invite people to your active room, and make you leave",
|
||||
"See when people join, leave, or are invited to your active room": "See when people join, leave, or are invited to your active room",
|
||||
"Send stickers to this room as you": "Send stickers to this room as you",
|
||||
"See when a sticker is posted in this room": "See when a sticker is posted in this room",
|
||||
"Send stickers to your active room as you": "Send stickers to your active room as you",
|
||||
|
|
|
@ -62,7 +62,7 @@ export const getOrder = (order: string, creationTs: number, roomId: string): Arr
|
|||
|
||||
if (typeof order === "string" && Array.from(order).every((c: string) => {
|
||||
const charCode = c.charCodeAt(0);
|
||||
return charCode >= 0x20 && charCode <= 0x7F;
|
||||
return charCode >= 0x20 && charCode <= 0x7E;
|
||||
})) {
|
||||
validatedOrder = order;
|
||||
}
|
||||
|
|
|
@ -44,6 +44,7 @@ import { CHAT_EFFECTS } from "../../effects";
|
|||
import { containsEmoji } from "../../effects/utils";
|
||||
import dis from "../../dispatcher/dispatcher";
|
||||
import {tryTransformPermalinkToLocalHref} from "../../utils/permalinks/Permalinks";
|
||||
import {MatrixEvent} from "matrix-js-sdk/src/models/event";
|
||||
|
||||
// TODO: Purge this from the universe
|
||||
|
||||
|
@ -144,6 +145,52 @@ export class StopGapWidgetDriver extends WidgetDriver {
|
|||
return {roomId, eventId: r.event_id};
|
||||
}
|
||||
|
||||
public async readRoomEvents(eventType: string, msgtype: string | undefined, limit: number): Promise<MatrixEvent[]> {
|
||||
limit = limit > 0 ? Math.min(limit, 25) : 25; // arbitrary choice
|
||||
|
||||
const client = MatrixClientPeg.get();
|
||||
const roomId = ActiveRoomObserver.activeRoomId;
|
||||
const room = client.getRoom(roomId);
|
||||
if (!client || !roomId || !room) throw new Error("Not in a room or not attached to a client");
|
||||
|
||||
const results: MatrixEvent[] = [];
|
||||
const events = room.getLiveTimeline().getEvents(); // timelines are most recent last
|
||||
for (let i = events.length - 1; i > 0; i--) {
|
||||
if (results.length >= limit) break;
|
||||
|
||||
const ev = events[i];
|
||||
if (ev.getType() !== eventType) continue;
|
||||
if (eventType === EventType.RoomMessage && msgtype && msgtype !== ev.getContent()['msgtype']) continue;
|
||||
results.push(ev);
|
||||
}
|
||||
|
||||
return results.map(e => e.event);
|
||||
}
|
||||
|
||||
public async readStateEvents(
|
||||
eventType: string, stateKey: string | undefined, limit: number,
|
||||
): Promise<MatrixEvent[]> {
|
||||
limit = limit > 0 ? Math.min(limit, 100) : 100; // arbitrary choice
|
||||
|
||||
const client = MatrixClientPeg.get();
|
||||
const roomId = ActiveRoomObserver.activeRoomId;
|
||||
const room = client.getRoom(roomId);
|
||||
if (!client || !roomId || !room) throw new Error("Not in a room or not attached to a client");
|
||||
|
||||
const results: MatrixEvent[] = [];
|
||||
const state = room.currentState.events.get(eventType);
|
||||
if (state) {
|
||||
if (stateKey === "" || !!stateKey) {
|
||||
const forKey = state.get(stateKey);
|
||||
if (forKey) results.push(forKey);
|
||||
} else {
|
||||
results.push(...Array.from(state.values()));
|
||||
}
|
||||
}
|
||||
|
||||
return results.slice(0, limit).map(e => e.event);
|
||||
}
|
||||
|
||||
public async askOpenID(observer: SimpleObservable<IOpenIDUpdate>) {
|
||||
const oidcState = WidgetPermissionStore.instance.getOIDCState(
|
||||
this.forWidget, this.forWidgetKind, this.inRoomId,
|
||||
|
|
|
@ -96,6 +96,16 @@ export class CapabilityText {
|
|||
[EventDirection.Receive]: _td("See when the avatar changes in your active room"),
|
||||
},
|
||||
},
|
||||
[EventType.RoomMember]: {
|
||||
[WidgetKind.Room]: {
|
||||
[EventDirection.Send]: _td("Kick, ban, or invite people to this room, and make you leave"),
|
||||
[EventDirection.Receive]: _td("See when people join, leave, or are invited to this room"),
|
||||
},
|
||||
[GENERIC_WIDGET_KIND]: {
|
||||
[EventDirection.Send]: _td("Kick, ban, or invite people to your active room, and make you leave"),
|
||||
[EventDirection.Receive]: _td("See when people join, leave, or are invited to your active room"),
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
private static nonStateSendRecvCaps: ISendRecvStaticCapText = {
|
||||
|
|
|
@ -5670,8 +5670,8 @@ mathml-tag-names@^2.1.3:
|
|||
integrity sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==
|
||||
|
||||
"matrix-js-sdk@github:matrix-org/matrix-js-sdk#develop":
|
||||
version "10.1.0"
|
||||
resolved "https://codeload.github.com/matrix-org/matrix-js-sdk/tar.gz/2d73805ca3d8c5a140fe05e574f826696de1656a"
|
||||
version "11.0.0"
|
||||
resolved "https://codeload.github.com/matrix-org/matrix-js-sdk/tar.gz/52a893a8116d60bb76f1b015d3161a15404b3628"
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.12.5"
|
||||
another-json "^0.2.0"
|
||||
|
|
Loading…
Reference in a new issue