Add method to remove all stickerpacks.

pull/21833/head
Richard Lewis 2018-02-05 11:49:26 +00:00
parent 29962ed89d
commit 34de3729fe
1 changed files with 22 additions and 1 deletions

View File

@ -45,12 +45,33 @@ function getUserWidgets() {
* @return {[object]} Array containing current / active stickerpack widgets * @return {[object]} Array containing current / active stickerpack widgets
*/ */
function getStickerpackWidgets() { function getStickerpackWidgets() {
return getUserWidgets().filter((widget) => widget.type='stickerpack'); const stickerpackWidgets = getUserWidgets().filter((widget) => widget.type='stickerpack');
console.warn('Stickerpack widgets', stickerpackWidgets);
return stickerpackWidgets;
} }
/**
* Remove all stickerpack widgets (stickerpacks are user widgets by nature)
*/
function removeStickerpackWidgets() {
const client = MatrixClientPeg.get();
if (!client) {
throw new Error('User not logged in');
}
const userWidgets = client.getAccountData('m.widgets').getContent() || {};
Object.entries(userWidgets).forEach(([key, widget]) => {
if (widget.type === 'stickerpack') {
delete userWidgets[key];
}
});
client.setAccountData('m.widgets', userWidgets);
}
export default { export default {
getWidgets, getWidgets,
getRoomWidgets, getRoomWidgets,
getUserWidgets, getUserWidgets,
getStickerpackWidgets, getStickerpackWidgets,
removeStickerpackWidgets,
}; };