Set user widgets on application data.
This commit is contained in:
parent
0577316c86
commit
adebf71a1d
1 changed files with 25 additions and 9 deletions
|
@ -291,6 +291,7 @@ function setWidget(event, roomId) {
|
||||||
const widgetUrl = event.data.url;
|
const widgetUrl = event.data.url;
|
||||||
const widgetName = event.data.name; // optional
|
const widgetName = event.data.name; // optional
|
||||||
const widgetData = event.data.data; // optional
|
const widgetData = event.data.data; // optional
|
||||||
|
const userWidget = event.data.userWidget;
|
||||||
|
|
||||||
const client = MatrixClientPeg.get();
|
const client = MatrixClientPeg.get();
|
||||||
if (!client) {
|
if (!client) {
|
||||||
|
@ -330,17 +331,32 @@ function setWidget(event, roomId) {
|
||||||
name: widgetName,
|
name: widgetName,
|
||||||
data: widgetData,
|
data: widgetData,
|
||||||
};
|
};
|
||||||
if (widgetUrl === null) { // widget is being deleted
|
|
||||||
content = {};
|
|
||||||
}
|
|
||||||
|
|
||||||
client.sendStateEvent(roomId, "im.vector.modular.widgets", content, widgetId).done(() => {
|
if (userWidget) {
|
||||||
sendResponse(event, {
|
const client = MatrixClientPeg.get();
|
||||||
success: true,
|
let userWidgets = client.getAccountData('m.widgets');
|
||||||
|
|
||||||
|
// Delete existing widget with ID
|
||||||
|
userWidgets = userWidgets.filter((widget) => widget.data.id === widgetId ? false : true);
|
||||||
|
|
||||||
|
// Add new widget / update
|
||||||
|
if (widgetUrl !== null) {
|
||||||
|
userWidgets.push(content);
|
||||||
|
}
|
||||||
|
|
||||||
|
client.setAccountData('m.widgets', userWidgets);
|
||||||
|
} else { // Room widget
|
||||||
|
if (widgetUrl === null) { // widget is being deleted
|
||||||
|
content = {};
|
||||||
|
}
|
||||||
|
client.sendStateEvent(roomId, "im.vector.modular.widgets", content, widgetId).done(() => {
|
||||||
|
sendResponse(event, {
|
||||||
|
success: true,
|
||||||
|
});
|
||||||
|
}, (err) => {
|
||||||
|
sendError(event, _t('Failed to send request.'), err);
|
||||||
});
|
});
|
||||||
}, (err) => {
|
}
|
||||||
sendError(event, _t('Failed to send request.'), err);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function getWidgets(event, roomId) {
|
function getWidgets(event, roomId) {
|
||||||
|
|
Loading…
Reference in a new issue