Use UnstableValue for all location constants (#7388)

This commit is contained in:
Andy Balaam 2021-12-15 16:54:11 +00:00 committed by GitHub
parent fc58ce7ed2
commit 1c6a7646fa
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 35 additions and 19 deletions

View file

@ -17,6 +17,7 @@ limitations under the License.
import React from 'react';
import maplibregl from 'maplibre-gl';
import { logger } from "matrix-js-sdk/src/logger";
import { LOCATION_EVENT_TYPE } from 'matrix-js-sdk/src/@types/location';
import SdkConfig from '../../../SdkConfig';
import { replaceableComponent } from "../../../utils/replaceableComponent";
@ -41,17 +42,15 @@ export default class MLocationBody extends React.Component<IBodyProps, IState> {
// events - so folks can read their old chat history correctly.
// https://github.com/matrix-org/matrix-doc/issues/3516
const content = this.props.mxEvent.getContent();
const uri = content['org.matrix.msc3488.location'] ?
content['org.matrix.msc3488.location'].uri :
content['geo_uri'];
const loc = content[LOCATION_EVENT_TYPE.name];
const uri = loc ? loc.uri : content['geo_uri'];
this.coords = this.parseGeoUri(uri);
this.state = {
error: undefined,
};
this.description =
content['org.matrix.msc3488.location']?.description ?? content['body'];
this.description = loc?.description ?? content['body'];
}
private parseGeoUri = (uri: string): GeolocationCoordinates => {

View file

@ -18,6 +18,7 @@ import React, { createRef } from 'react';
import { EventType, MsgType } from "matrix-js-sdk/src/@types/event";
import { Relations } from 'matrix-js-sdk/src/models/relations';
import { POLL_START_EVENT_TYPE } from "matrix-js-sdk/src/@types/polls";
import { LOCATION_EVENT_TYPE } from 'matrix-js-sdk/src/@types/location';
import * as sdk from '../../../index';
import SettingsStore from "../../../settings/SettingsStore";
@ -127,8 +128,10 @@ export default class MessageEvent extends React.Component<IProps> implements IMe
}
}
if ((type && type === "org.matrix.msc3488.location") ||
(type && type === EventType.RoomMessage && msgtype && msgtype === MsgType.Location)) {
if (
LOCATION_EVENT_TYPE.matches(type) ||
(type === EventType.RoomMessage && msgtype === MsgType.Location)
) {
// TODO: tidy this up once location sharing is out of labs
if (SettingsStore.getValue("feature_location_share")) {
BodyType = sdk.getComponent('messages.MLocationBody');