From bef435e15af87ebd622d88647f98df086e06be2f Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Thu, 14 Jun 2018 13:41:12 +0100 Subject: [PATCH] allow ShareEvent to devolve into ShareRoom using checkbox + i18n Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- src/components/views/dialogs/ShareDialog.js | 31 +++++++++++++++------ src/i18n/strings/en_EN.json | 1 + 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/src/components/views/dialogs/ShareDialog.js b/src/components/views/dialogs/ShareDialog.js index 12efc8b919..873fcc4dee 100644 --- a/src/components/views/dialogs/ShareDialog.js +++ b/src/components/views/dialogs/ShareDialog.js @@ -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 =
+ onClick={this.onLinkSpecificEventCheckboxClick} />
; } - 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 =
+ + +
; + + 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); diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json index bb5ad5405b..3802c73431 100644 --- a/src/i18n/strings/en_EN.json +++ b/src/i18n/strings/en_EN.json @@ -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.",