support cancelling and uncancelling previews

This commit is contained in:
Matthew Hodgson 2016-04-03 02:50:51 +01:00
parent a5258978d6
commit ff2885087d
2 changed files with 34 additions and 0 deletions

View file

@ -66,6 +66,15 @@ module.exports = React.createClass({
if (this.props.onFinished) this.props.onFinished(); if (this.props.onFinished) this.props.onFinished();
}, },
onUnhidePreviewClick: function() {
if (global.localStorage) {
// FIXME: factor this out with LinkPreviewWidget
// FIXME: somehow propagate this to the EventTile such that it updates itself and realises the link has rematerialised
global.localStorage.removeItem("hide_preview_" + this.props.mxEvent.getId());
if (this.props.onFinished) this.props.onFinished();
}
},
render: function() { render: function() {
var eventStatus = this.props.mxEvent.status; var eventStatus = this.props.mxEvent.status;
var resendButton; var resendButton;
@ -73,6 +82,7 @@ module.exports = React.createClass({
var redactButton; var redactButton;
var cancelButton; var cancelButton;
var permalinkButton; var permalinkButton;
var unhidePreviewButton;
if (eventStatus === 'not_sent') { if (eventStatus === 'not_sent') {
resendButton = ( resendButton = (
@ -104,6 +114,18 @@ module.exports = React.createClass({
</div> </div>
); );
if (global.localStorage) {
// FIXME: factor this out with LinkPreviewWidget
if (global.localStorage.getItem("hide_preview_" + this.props.mxEvent.getId()) === "1") {
unhidePreviewButton = (
<div className="mx_ContextualMenu_field" onClick={this.onUnhidePreviewClick}>
Unhide Preview
</div>
)
}
}
// XXX: this should be https://matrix.to. // XXX: this should be https://matrix.to.
// XXX: if we use room ID, we should also include a server where the event can be found (other than in the domain of the event ID) // XXX: if we use room ID, we should also include a server where the event can be found (other than in the domain of the event ID)
permalinkButton = ( permalinkButton = (
@ -119,6 +141,7 @@ module.exports = React.createClass({
{redactButton} {redactButton}
{cancelButton} {cancelButton}
{viewSourceButton} {viewSourceButton}
{unhidePreviewButton}
{permalinkButton} {permalinkButton}
</div> </div>
); );

View file

@ -33,6 +33,8 @@ limitations under the License.
.mx_LinkPreviewWidget_caption { .mx_LinkPreviewWidget_caption {
margin-left: 15px; margin-left: 15px;
-webkit-flex: 1;
flex: 1;
} }
.mx_LinkPreviewWidget_title { .mx_LinkPreviewWidget_title {
@ -48,3 +50,12 @@ limitations under the License.
margin-top: 8px; margin-top: 8px;
white-space: normal; white-space: normal;
} }
.mx_LinkPreviewWidget_cancel {
visibility: hidden;
cursor: pointer;
}
.mx_LinkPreviewWidget:hover .mx_LinkPreviewWidget_cancel {
visibility: visible;
}