mirror of
https://github.com/element-hq/element-web.git
synced 2024-12-03 20:36:57 +03:00
AppTile: Support deletion of apps from room state
This commit is contained in:
parent
bcb2f8408b
commit
b63edcb390
2 changed files with 21 additions and 1 deletions
|
@ -17,6 +17,7 @@ limitations under the License.
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
const React = require('react');
|
const React = require('react');
|
||||||
|
const MatrixClientPeg = require('../../../MatrixClientPeg');
|
||||||
|
|
||||||
export default React.createClass({
|
export default React.createClass({
|
||||||
displayName: 'AppTile',
|
displayName: 'AppTile',
|
||||||
|
@ -25,6 +26,7 @@ export default React.createClass({
|
||||||
id: React.PropTypes.string.isRequired,
|
id: React.PropTypes.string.isRequired,
|
||||||
url: React.PropTypes.string.isRequired,
|
url: React.PropTypes.string.isRequired,
|
||||||
name: React.PropTypes.string.isRequired,
|
name: React.PropTypes.string.isRequired,
|
||||||
|
room: React.PropTypes.object.isRequired,
|
||||||
},
|
},
|
||||||
|
|
||||||
getDefaultProps: function() {
|
getDefaultProps: function() {
|
||||||
|
@ -49,6 +51,24 @@ export default React.createClass({
|
||||||
|
|
||||||
_onDeleteClick: function() {
|
_onDeleteClick: function() {
|
||||||
console.log("Delete widget %s", this.props.id);
|
console.log("Delete widget %s", this.props.id);
|
||||||
|
const appsStateEvents = this.props.room.currentState.getStateEvents('im.vector.modular.widgets', '');
|
||||||
|
if (!appsStateEvents) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const appsStateEvent = appsStateEvents.getContent();
|
||||||
|
if (appsStateEvent[this.props.id]) {
|
||||||
|
delete appsStateEvent[this.props.id];
|
||||||
|
MatrixClientPeg.get().sendStateEvent(
|
||||||
|
this.props.room.roomId,
|
||||||
|
'im.vector.modular.widgets',
|
||||||
|
appsStateEvent,
|
||||||
|
'',
|
||||||
|
).then(() => {
|
||||||
|
console.log('Deleted widget');
|
||||||
|
}, (e) => {
|
||||||
|
console.error('Failed to delete widget', e);
|
||||||
|
});
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
render: function() {
|
render: function() {
|
||||||
|
|
|
@ -177,8 +177,8 @@ module.exports = React.createClass({
|
||||||
id={app.id}
|
id={app.id}
|
||||||
url={app.url}
|
url={app.url}
|
||||||
name={app.name}
|
name={app.name}
|
||||||
roomId={this.props.roomId}
|
|
||||||
fullWidth={arr.length<2 ? true : false}
|
fullWidth={arr.length<2 ? true : false}
|
||||||
|
room={this.props.room}
|
||||||
userId={this.props.userId}
|
userId={this.props.userId}
|
||||||
/>);
|
/>);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue