Remove redundant components and devDependencies
parent
b1cc078543
commit
672d0fe97b
|
@ -163,9 +163,7 @@
|
||||||
"stylelint-config-standard": "^18.3.0",
|
"stylelint-config-standard": "^18.3.0",
|
||||||
"stylelint-scss": "^3.18.0",
|
"stylelint-scss": "^3.18.0",
|
||||||
"typescript": "^3.9.7",
|
"typescript": "^3.9.7",
|
||||||
"walk": "^2.3.14",
|
"walk": "^2.3.14"
|
||||||
"webpack": "^4.43.0",
|
|
||||||
"webpack-cli": "^3.3.12"
|
|
||||||
},
|
},
|
||||||
"jest": {
|
"jest": {
|
||||||
"testMatch": [
|
"testMatch": [
|
||||||
|
|
|
@ -1,90 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2015, 2016 OpenMarket Ltd
|
|
||||||
Copyright 2019 Michael Telatynski <7t3chguy@gmail.com>
|
|
||||||
Copyright 2019, 2020 The Matrix.org Foundation C.I.C.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import React from 'react';
|
|
||||||
import createReactClass from 'create-react-class';
|
|
||||||
import PropTypes from 'prop-types';
|
|
||||||
import { _t } from '../../languageHandler';
|
|
||||||
import SdkConfig from '../../SdkConfig';
|
|
||||||
|
|
||||||
export default createReactClass({
|
|
||||||
displayName: 'CompatibilityPage',
|
|
||||||
propTypes: {
|
|
||||||
onAccept: PropTypes.func,
|
|
||||||
},
|
|
||||||
|
|
||||||
getDefaultProps: function() {
|
|
||||||
return {
|
|
||||||
onAccept: function() {}, // NOP
|
|
||||||
};
|
|
||||||
},
|
|
||||||
|
|
||||||
onAccept: function() {
|
|
||||||
this.props.onAccept();
|
|
||||||
},
|
|
||||||
|
|
||||||
render: function() {
|
|
||||||
const brand = SdkConfig.get().brand;
|
|
||||||
|
|
||||||
return (
|
|
||||||
<div className="mx_CompatibilityPage">
|
|
||||||
<div className="mx_CompatibilityPage_box">
|
|
||||||
<p>{_t(
|
|
||||||
"Sorry, your browser is <b>not</b> able to run %(brand)s.",
|
|
||||||
{
|
|
||||||
brand,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
'b': (sub) => <b>{sub}</b>,
|
|
||||||
})
|
|
||||||
}</p>
|
|
||||||
<p>
|
|
||||||
{ _t(
|
|
||||||
"%(brand)s uses many advanced browser features, some of which are not available " +
|
|
||||||
"or experimental in your current browser.",
|
|
||||||
{ brand },
|
|
||||||
) }
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
{ _t(
|
|
||||||
'Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, ' +
|
|
||||||
'or <safariLink>Safari</safariLink> for the best experience.',
|
|
||||||
{},
|
|
||||||
{
|
|
||||||
'chromeLink': (sub) => <a href="https://www.google.com/chrome">{sub}</a>,
|
|
||||||
'firefoxLink': (sub) => <a href="https://firefox.com">{sub}</a>,
|
|
||||||
'safariLink': (sub) => <a href="https://apple.com/safari">{sub}</a>,
|
|
||||||
},
|
|
||||||
)}
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
{ _t(
|
|
||||||
"With your current browser, the look and feel of the application may be " +
|
|
||||||
"completely incorrect, and some or all features may not function. " +
|
|
||||||
"If you want to try it anyway you can continue, but you are on your own in terms " +
|
|
||||||
"of any issues you may encounter!",
|
|
||||||
) }
|
|
||||||
</p>
|
|
||||||
<button onClick={this.onAccept}>
|
|
||||||
{ _t("I understand the risks and wish to continue") }
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
},
|
|
||||||
});
|
|
|
@ -1,57 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2015, 2016 OpenMarket Ltd
|
|
||||||
Copyright 2019 The Matrix.org Foundation C.I.C.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import React from "react";
|
|
||||||
import PropTypes from 'prop-types';
|
|
||||||
import createReactClass from 'create-react-class';
|
|
||||||
import { _t } from '../../../languageHandler';
|
|
||||||
|
|
||||||
const Presets = {
|
|
||||||
PrivateChat: "private_chat",
|
|
||||||
PublicChat: "public_chat",
|
|
||||||
Custom: "custom",
|
|
||||||
};
|
|
||||||
|
|
||||||
export default createReactClass({
|
|
||||||
displayName: 'CreateRoomPresets',
|
|
||||||
propTypes: {
|
|
||||||
onChange: PropTypes.func,
|
|
||||||
preset: PropTypes.string,
|
|
||||||
},
|
|
||||||
|
|
||||||
Presets: Presets,
|
|
||||||
|
|
||||||
getDefaultProps: function() {
|
|
||||||
return {
|
|
||||||
onChange: function() {},
|
|
||||||
};
|
|
||||||
},
|
|
||||||
|
|
||||||
onValueChanged: function(ev) {
|
|
||||||
this.props.onChange(ev.target.value);
|
|
||||||
},
|
|
||||||
|
|
||||||
render: function() {
|
|
||||||
return (
|
|
||||||
<select className="mx_Presets" onChange={this.onValueChanged} value={this.props.preset}>
|
|
||||||
<option value={this.Presets.PrivateChat}>{ _t("Private Chat") }</option>
|
|
||||||
<option value={this.Presets.PublicChat}>{ _t("Public Chat") }</option>
|
|
||||||
<option value={this.Presets.Custom}>{ _t("Custom") }</option>
|
|
||||||
</select>
|
|
||||||
);
|
|
||||||
},
|
|
||||||
});
|
|
|
@ -1,106 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2015, 2016 OpenMarket Ltd
|
|
||||||
Copyright 2019 The Matrix.org Foundation C.I.C.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import React from 'react';
|
|
||||||
import PropTypes from 'prop-types';
|
|
||||||
import createReactClass from 'create-react-class';
|
|
||||||
import { _t } from '../../../languageHandler';
|
|
||||||
|
|
||||||
export default createReactClass({
|
|
||||||
displayName: 'RoomAlias',
|
|
||||||
propTypes: {
|
|
||||||
// Specifying a homeserver will make magical things happen when you,
|
|
||||||
// e.g. start typing in the room alias box.
|
|
||||||
homeserver: PropTypes.string,
|
|
||||||
alias: PropTypes.string,
|
|
||||||
onChange: PropTypes.func,
|
|
||||||
},
|
|
||||||
|
|
||||||
getDefaultProps: function() {
|
|
||||||
return {
|
|
||||||
onChange: function() {},
|
|
||||||
alias: '',
|
|
||||||
};
|
|
||||||
},
|
|
||||||
|
|
||||||
getAliasLocalpart: function() {
|
|
||||||
let room_alias = this.props.alias;
|
|
||||||
|
|
||||||
if (room_alias && this.props.homeserver) {
|
|
||||||
const suffix = ":" + this.props.homeserver;
|
|
||||||
if (room_alias.startsWith("#") && room_alias.endsWith(suffix)) {
|
|
||||||
room_alias = room_alias.slice(1, -suffix.length);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return room_alias;
|
|
||||||
},
|
|
||||||
|
|
||||||
onValueChanged: function(ev) {
|
|
||||||
this.props.onChange(ev.target.value);
|
|
||||||
},
|
|
||||||
|
|
||||||
onFocus: function(ev) {
|
|
||||||
const target = ev.target;
|
|
||||||
const curr_val = ev.target.value;
|
|
||||||
|
|
||||||
if (this.props.homeserver) {
|
|
||||||
if (curr_val == "") {
|
|
||||||
const self = this;
|
|
||||||
setTimeout(function() {
|
|
||||||
target.value = "#:" + self.props.homeserver;
|
|
||||||
target.setSelectionRange(1, 1);
|
|
||||||
}, 0);
|
|
||||||
} else {
|
|
||||||
const suffix = ":" + this.props.homeserver;
|
|
||||||
setTimeout(function() {
|
|
||||||
target.setSelectionRange(
|
|
||||||
curr_val.startsWith("#") ? 1 : 0,
|
|
||||||
curr_val.endsWith(suffix) ? (target.value.length - suffix.length) : target.value.length,
|
|
||||||
);
|
|
||||||
}, 0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
onBlur: function(ev) {
|
|
||||||
const curr_val = ev.target.value;
|
|
||||||
|
|
||||||
if (this.props.homeserver) {
|
|
||||||
if (curr_val == "#:" + this.props.homeserver) {
|
|
||||||
ev.target.value = "";
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (curr_val != "") {
|
|
||||||
let new_val = ev.target.value;
|
|
||||||
const suffix = ":" + this.props.homeserver;
|
|
||||||
if (!curr_val.startsWith("#")) new_val = "#" + new_val;
|
|
||||||
if (!curr_val.endsWith(suffix)) new_val = new_val + suffix;
|
|
||||||
ev.target.value = new_val;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
render: function() {
|
|
||||||
return (
|
|
||||||
<input type="text" className="mx_RoomAlias" placeholder={_t("Address (optional)")}
|
|
||||||
onChange={this.onValueChanged} onFocus={this.onFocus} onBlur={this.onBlur}
|
|
||||||
value={this.props.alias} />
|
|
||||||
);
|
|
||||||
},
|
|
||||||
});
|
|
|
@ -1,76 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2015, 2016 OpenMarket Ltd
|
|
||||||
Copyright 2019 The Matrix.org Foundation C.I.C.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import React, {createRef} from 'react';
|
|
||||||
import PropTypes from 'prop-types';
|
|
||||||
import createReactClass from 'create-react-class';
|
|
||||||
import { _t } from '../../../languageHandler';
|
|
||||||
|
|
||||||
export default createReactClass({
|
|
||||||
displayName: 'UserSelector',
|
|
||||||
|
|
||||||
propTypes: {
|
|
||||||
onChange: PropTypes.func,
|
|
||||||
selected_users: PropTypes.arrayOf(PropTypes.string),
|
|
||||||
},
|
|
||||||
|
|
||||||
getDefaultProps: function() {
|
|
||||||
return {
|
|
||||||
onChange: function() {},
|
|
||||||
selected: [],
|
|
||||||
};
|
|
||||||
},
|
|
||||||
|
|
||||||
// TODO: [REACT-WARNING] Replace component with real class, use constructor for refs
|
|
||||||
UNSAFE_componentWillMount: function() {
|
|
||||||
this._user_id_input = createRef();
|
|
||||||
},
|
|
||||||
|
|
||||||
addUser: function(user_id) {
|
|
||||||
if (this.props.selected_users.indexOf(user_id == -1)) {
|
|
||||||
this.props.onChange(this.props.selected_users.concat([user_id]));
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
removeUser: function(user_id) {
|
|
||||||
this.props.onChange(this.props.selected_users.filter(function(e) {
|
|
||||||
return e != user_id;
|
|
||||||
}));
|
|
||||||
},
|
|
||||||
|
|
||||||
onAddUserId: function() {
|
|
||||||
this.addUser(this._user_id_input.current.value);
|
|
||||||
this._user_id_input.current.value = "";
|
|
||||||
},
|
|
||||||
|
|
||||||
render: function() {
|
|
||||||
const self = this;
|
|
||||||
return (
|
|
||||||
<div>
|
|
||||||
<ul className="mx_UserSelector_UserIdList">
|
|
||||||
{ this.props.selected_users.map(function(user_id, i) {
|
|
||||||
return <li key={user_id}>{ user_id } - <span onClick={function() {self.removeUser(user_id);}}>X</span></li>;
|
|
||||||
}) }
|
|
||||||
</ul>
|
|
||||||
<input type="text" ref={this._user_id_input} defaultValue="" className="mx_UserSelector_userIdInput" placeholder={_t("ex. @bob:example.com")} />
|
|
||||||
<button onClick={this.onAddUserId} className="mx_UserSelector_AddUserId">
|
|
||||||
{ _t("Add User") }
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
},
|
|
||||||
});
|
|
|
@ -1,80 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2016 OpenMarket Ltd
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import React from 'react';
|
|
||||||
import PropTypes from 'prop-types';
|
|
||||||
import createReactClass from 'create-react-class';
|
|
||||||
import {MatrixClientPeg} from "../../../MatrixClientPeg";
|
|
||||||
import * as sdk from "../../../index";
|
|
||||||
import { _t } from '../../../languageHandler';
|
|
||||||
|
|
||||||
export default createReactClass({
|
|
||||||
displayName: 'RoomNameEditor',
|
|
||||||
|
|
||||||
propTypes: {
|
|
||||||
room: PropTypes.object.isRequired,
|
|
||||||
},
|
|
||||||
|
|
||||||
getInitialState: function() {
|
|
||||||
return {
|
|
||||||
name: null,
|
|
||||||
};
|
|
||||||
},
|
|
||||||
|
|
||||||
// TODO: [REACT-WARNING] Move this to constructor
|
|
||||||
UNSAFE_componentWillMount: function() {
|
|
||||||
const room = this.props.room;
|
|
||||||
const name = room.currentState.getStateEvents('m.room.name', '');
|
|
||||||
const myId = MatrixClientPeg.get().credentials.userId;
|
|
||||||
const defaultName = room.getDefaultRoomName(myId);
|
|
||||||
|
|
||||||
this.setState({
|
|
||||||
name: name ? name.getContent().name : '',
|
|
||||||
});
|
|
||||||
|
|
||||||
this._placeholderName = _t("Unnamed Room");
|
|
||||||
if (defaultName && defaultName !== 'Empty room') { // default name from JS SDK, needs no translation as we don't ever show it.
|
|
||||||
this._placeholderName += " (" + defaultName + ")";
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
getRoomName: function() {
|
|
||||||
return this.state.name;
|
|
||||||
},
|
|
||||||
|
|
||||||
_onValueChanged: function(value, shouldSubmit) {
|
|
||||||
this.setState({
|
|
||||||
name: value,
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
render: function() {
|
|
||||||
const EditableText = sdk.getComponent("elements.EditableText");
|
|
||||||
|
|
||||||
return (
|
|
||||||
<div className="mx_RoomHeader_name">
|
|
||||||
<EditableText
|
|
||||||
className="mx_RoomHeader_nametext mx_RoomHeader_editable"
|
|
||||||
placeholderClassName="mx_RoomHeader_placeholder"
|
|
||||||
placeholder={this._placeholderName}
|
|
||||||
blurToCancel={false}
|
|
||||||
initialValue={this.state.name}
|
|
||||||
onValueChanged={this._onValueChanged}
|
|
||||||
dir="auto" />
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
},
|
|
||||||
});
|
|
|
@ -1,68 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2016 OpenMarket Ltd
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import React from 'react';
|
|
||||||
import PropTypes from 'prop-types';
|
|
||||||
import createReactClass from 'create-react-class';
|
|
||||||
import * as sdk from '../../../index';
|
|
||||||
import { _t } from "../../../languageHandler";
|
|
||||||
|
|
||||||
export default createReactClass({
|
|
||||||
displayName: 'RoomTopicEditor',
|
|
||||||
|
|
||||||
propTypes: {
|
|
||||||
room: PropTypes.object.isRequired,
|
|
||||||
},
|
|
||||||
|
|
||||||
getInitialState: function() {
|
|
||||||
return {
|
|
||||||
topic: null,
|
|
||||||
};
|
|
||||||
},
|
|
||||||
|
|
||||||
componentDidMount: function() {
|
|
||||||
const room = this.props.room;
|
|
||||||
const topic = room.currentState.getStateEvents('m.room.topic', '');
|
|
||||||
this.setState({
|
|
||||||
topic: topic ? topic.getContent().topic : '',
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
getTopic: function() {
|
|
||||||
return this.state.topic;
|
|
||||||
},
|
|
||||||
|
|
||||||
_onValueChanged: function(value) {
|
|
||||||
this.setState({
|
|
||||||
topic: value,
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
render: function() {
|
|
||||||
const EditableText = sdk.getComponent("elements.EditableText");
|
|
||||||
|
|
||||||
return (
|
|
||||||
<EditableText
|
|
||||||
className="mx_RoomHeader_topic mx_RoomHeader_editable"
|
|
||||||
placeholderClassName="mx_RoomHeader_placeholder"
|
|
||||||
placeholder={_t("Add a topic")}
|
|
||||||
blurToCancel={false}
|
|
||||||
initialValue={this.state.topic}
|
|
||||||
onValueChanged={this._onValueChanged}
|
|
||||||
dir="auto" />
|
|
||||||
);
|
|
||||||
},
|
|
||||||
});
|
|
Loading…
Reference in New Issue