Merge pull request #3174 from matrix-org/bwindels/edit-history-error

show /relations error in edit history dialog
This commit is contained in:
Bruno Windels 2019-07-04 09:05:29 +00:00 committed by GitHub
commit 3f28f2e4a6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 38 additions and 4 deletions

View file

@ -28,6 +28,11 @@ limitations under the License.
flex: 1 1 auto; flex: 1 1 auto;
} }
.mx_MessageEditHistoryDialog_error {
color: $warning-color;
text-align: center;
}
.mx_MessageEditHistoryDialog_edits { .mx_MessageEditHistoryDialog_edits {
list-style-type: none; list-style-type: none;
font-size: 14px; font-size: 14px;

View file

@ -30,6 +30,7 @@ export default class MessageEditHistoryDialog extends React.PureComponent {
constructor(props) { constructor(props) {
super(props); super(props);
this.state = { this.state = {
error: null,
events: [], events: [],
nextBatch: null, nextBatch: null,
isLoading: true, isLoading: true,
@ -45,10 +46,21 @@ export default class MessageEditHistoryDialog extends React.PureComponent {
const opts = {from: this.state.nextBatch}; const opts = {from: this.state.nextBatch};
const roomId = this.props.mxEvent.getRoomId(); const roomId = this.props.mxEvent.getRoomId();
const eventId = this.props.mxEvent.getId(); const eventId = this.props.mxEvent.getId();
const result = await MatrixClientPeg.get().relations( let result;
roomId, eventId, "m.replace", "m.room.message", opts);
let resolve; let resolve;
const promise = new Promise(r => resolve = r); let reject;
const promise = new Promise((_resolve, _reject) => {resolve = _resolve; reject = _reject;});
try {
result = await MatrixClientPeg.get().relations(
roomId, eventId, "m.replace", "m.room.message", opts);
} catch (error) {
// log if the server returned an error
if (error.errcode) {
console.error("fetching /relations failed with error", error);
}
this.setState({error}, () => reject(error));
return promise;
}
this.setState({ this.setState({
events: this.state.events.concat(result.events), events: this.state.events.concat(result.events),
nextBatch: result.nextBatch, nextBatch: result.nextBatch,
@ -82,7 +94,23 @@ export default class MessageEditHistoryDialog extends React.PureComponent {
render() { render() {
let content; let content;
if (this.state.error) { if (this.state.error) {
content = this.state.error; const {error} = this.state;
if (error.errcode === "M_UNRECOGNIZED") {
content = (<p className="mx_MessageEditHistoryDialog_error">
{_t("Your homeserver doesn't seem to support this feature.")}
</p>);
} else if (error.errcode) {
// some kind of error from the homeserver
content = (<p className="mx_MessageEditHistoryDialog_error">
{_t("Something went wrong!")}
</p>);
} else {
content = (<p className="mx_MessageEditHistoryDialog_error">
{_t("Cannot reach homeserver")}
<br />
{_t("Ensure you have a stable internet connection, or get in touch with the server admin")}
</p>);
}
} else if (this.state.isLoading) { } else if (this.state.isLoading) {
const Spinner = sdk.getComponent("elements.Spinner"); const Spinner = sdk.getComponent("elements.Spinner");
content = <Spinner />; content = <Spinner />;

View file

@ -1203,6 +1203,7 @@
"Manually export keys": "Manually export keys", "Manually export keys": "Manually export keys",
"You'll lose access to your encrypted messages": "You'll lose access to your encrypted messages", "You'll lose access to your encrypted messages": "You'll lose access to your encrypted messages",
"Are you sure you want to sign out?": "Are you sure you want to sign out?", "Are you sure you want to sign out?": "Are you sure you want to sign out?",
"Your homeserver doesn't seem to support this feature.": "Your homeserver doesn't seem to support this feature.",
"Message edits": "Message edits", "Message edits": "Message edits",
"If you run into any bugs or have feedback you'd like to share, please let us know on GitHub.": "If you run into any bugs or have feedback you'd like to share, please let us know on GitHub.", "If you run into any bugs or have feedback you'd like to share, please let us know on GitHub.": "If you run into any bugs or have feedback you'd like to share, please let us know on GitHub.",
"To help avoid duplicate issues, please <existingIssuesLink>view existing issues</existingIssuesLink> first (and add a +1) or <newIssueLink>create a new issue</newIssueLink> if you can't find it.": "To help avoid duplicate issues, please <existingIssuesLink>view existing issues</existingIssuesLink> first (and add a +1) or <newIssueLink>create a new issue</newIssueLink> if you can't find it.", "To help avoid duplicate issues, please <existingIssuesLink>view existing issues</existingIssuesLink> first (and add a +1) or <newIssueLink>create a new issue</newIssueLink> if you can't find it.": "To help avoid duplicate issues, please <existingIssuesLink>view existing issues</existingIssuesLink> first (and add a +1) or <newIssueLink>create a new issue</newIssueLink> if you can't find it.",