diff --git a/src/components/views/elements/AppTile.js b/src/components/views/elements/AppTile.js index 3e343e098c..024f62c34d 100644 --- a/src/components/views/elements/AppTile.js +++ b/src/components/views/elements/AppTile.js @@ -172,18 +172,32 @@ export default React.createClass({ */ _onDeleteClick: function() { if (this._canUserModify()) { - console.log("Delete widget %s", this.props.id); - this.setState({deleting: true}); - MatrixClientPeg.get().sendStateEvent( - this.props.room.roomId, - 'im.vector.modular.widgets', - {}, // empty content - this.props.id, - ).then(() => { - console.log('Deleted widget'); - }, (e) => { - console.error('Failed to delete widget', e); - this.setState({deleting: false}); + // Show delete confirmation dialog + const QuestionDialog = sdk.getComponent("dialogs.QuestionDialog"); + Modal.createTrackedDialog('Delete Widget', '', QuestionDialog, { + title: _t("Delete Widget"), + description: +
+ { _t("Deleting a widget removes it for all users in this room - are you sure you want to delete this widget?") } +
, + button: _t("OK"), + onFinished: (confirmed) => { + if (confirmed) { + console.log("Delete widget %s", this.props.id); + this.setState({deleting: true}); + MatrixClientPeg.get().sendStateEvent( + this.props.room.roomId, + 'im.vector.modular.widgets', + {}, // empty content + this.props.id, + ).then(() => { + console.log('Deleted widget'); + }, (e) => { + console.error('Failed to delete widget', e); + this.setState({deleting: false}); + }); + } + }, }); } else { console.log("Revoke widget permissions - %s", this.props.id); @@ -305,7 +319,7 @@ export default React.createClass({ let deleteIcon = 'img/cancel.svg'; let deleteClasses = 'mx_filterFlipColor mx_AppTileMenuBarWidget'; if(this._canUserModify()) { - deleteIcon = 'img/cancel-red.svg'; + deleteIcon = 'img/icon-delete-pink.svg'; deleteClasses += ' mx_AppTileMenuBarWidgetDelete'; } diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json index 4338287be3..827d996e49 100644 --- a/src/i18n/strings/en_EN.json +++ b/src/i18n/strings/en_EN.json @@ -201,6 +201,8 @@ "Authentication": "Authentication", "Failed to delete device": "Failed to delete device", "Delete": "Delete", + "Delete Widget": "Delete Widget", + "Deleting a widget removes it for all users in this room - are you sure you want to delete this widget?": "Deleting a widget removes it for all users in this room - are you sure you want to delete this widget?", "Disable Notifications": "Disable Notifications", "Enable Notifications": "Enable Notifications", "Cannot add any more widgets": "Cannot add any more widgets",