allow ShareEvent to devolve into ShareRoom using checkbox + i18n

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
pull/21833/head
Michael Telatynski 2018-06-14 13:41:12 +01:00
parent e1d3c2e4c7
commit bef435e15a
No known key found for this signature in database
GPG Key ID: 3F879DA5AD802A5E
2 changed files with 24 additions and 8 deletions

View File

@ -67,10 +67,11 @@ export default class ShareDialog extends React.Component {
super(props);
this.onCopyClick = this.onCopyClick.bind(this);
this.onLinkRecentCheckboxClick = this.onLinkRecentCheckboxClick.bind(this);
this.onLinkSpecificEventCheckboxClick = this.onLinkSpecificEventCheckboxClick.bind(this);
this.state = {
linkRecentTicked: false,
// MatrixEvent defaults to share linkSpecificEvent
linkSpecificEvent: this.props.target instanceof MatrixEvent,
};
}
@ -116,9 +117,9 @@ export default class ShareDialog extends React.Component {
e.target.onmouseleave = close;
}
onLinkRecentCheckboxClick() {
onLinkSpecificEventCheckboxClick() {
this.setState({
linkRecentTicked: !this.state.linkRecentTicked,
linkSpecificEvent: !this.state.linkSpecificEvent,
});
}
@ -135,16 +136,16 @@ export default class ShareDialog extends React.Component {
if (events.length > 0) {
checkbox = <div>
<input type="checkbox"
value={this.state.linkRecentTicked}
value={this.state.linkSpecificEvent}
id="mx_ShareDialog_checkbox"
onClick={this.onLinkRecentCheckboxClick} />
onClick={this.onLinkSpecificEventCheckboxClick} />
<label htmlFor="mx_ShareDialog_checkbox">
{ _t('Link to most recent message') }
</label>
</div>;
}
if (this.state.linkRecentTicked) {
if (this.state.linkSpecificEvent) {
matrixToUrl = makeEventPermalink(this.props.target.roomId, events[events.length - 1].getId());
} else {
matrixToUrl = makeRoomPermalink(this.props.target.roomId);
@ -157,7 +158,21 @@ export default class ShareDialog extends React.Component {
matrixToUrl = makeGroupPermalink(this.props.target.groupId);
} else if (this.props.target instanceof MatrixEvent) {
title = _t('Share Room Message');
matrixToUrl = makeEventPermalink(this.props.target.roomId, this.props.target.eventId);
checkbox = <div>
<input type="checkbox"
value={this.state.linkSpecificEvent}
id="mx_ShareDialog_checkbox"
onClick={this.onLinkSpecificEventCheckboxClick} />
<label htmlFor="mx_ShareDialog_checkbox">
{ _t('Link to selected message') }
</label>
</div>;
if (this.state.linkSpecificEvent) {
matrixToUrl = makeEventPermalink(this.props.target.roomId, this.props.target.eventId);
} else {
matrixToUrl = makeRoomPermalink(this.props.target.roomId);
}
}
const encodedUrl = encodeURIComponent(matrixToUrl);

View File

@ -863,6 +863,7 @@
"Share User": "Share User",
"Share Community": "Share Community",
"Share Room Message": "Share Room Message",
"Link to selected message": "Link to selected message",
"COPY": "COPY",
"You are currently blacklisting unverified devices; to send messages to these devices you must verify them.": "You are currently blacklisting unverified devices; to send messages to these devices you must verify them.",
"We recommend you go through the verification process for each device to confirm they belong to their legitimate owner, but you can resend the message without verifying if you prefer.": "We recommend you go through the verification process for each device to confirm they belong to their legitimate owner, but you can resend the message without verifying if you prefer.",