stuff
This commit is contained in:
parent
aa7a25454b
commit
b2c97f92db
|
@ -14,12 +14,12 @@ module.exports = (_ => {
|
||||||
"info": {
|
"info": {
|
||||||
"name": "PinDMs",
|
"name": "PinDMs",
|
||||||
"author": "DevilBro",
|
"author": "DevilBro",
|
||||||
"version": "1.7.7",
|
"version": "1.7.8",
|
||||||
"description": "Allow you to pin DMs, making them appear at the top of your DMs/Server-List"
|
"description": "Allow you to pin DMs, making them appear at the top of your DMs/Server-List"
|
||||||
},
|
},
|
||||||
"changeLog": {
|
"changeLog": {
|
||||||
"fixed": {
|
"added": {
|
||||||
"Works again": "Some of you really need to learn how to be a little bit more patient and give plugin devs some time to fix their stuff if discord breaks it..."
|
"Predefined Categories": "Added the option to enable predefined categories for the channel list in the settings that will automatically add the dms fitting the category topic"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -66,7 +66,7 @@ module.exports = (_ => {
|
||||||
var hoveredCategory, draggedCategory, releasedCategory;
|
var hoveredCategory, draggedCategory, releasedCategory;
|
||||||
var hoveredChannel, draggedChannel, releasedChannel;
|
var hoveredChannel, draggedChannel, releasedChannel;
|
||||||
|
|
||||||
var settings = {};
|
var settings = {}, preCategories = {}, preCollapseStates = {};
|
||||||
|
|
||||||
return class PinDMs extends Plugin {
|
return class PinDMs extends Plugin {
|
||||||
onLoad() {
|
onLoad() {
|
||||||
|
@ -77,6 +77,11 @@ module.exports = (_ => {
|
||||||
showPinIcon: {value: true, inner: false, description: "Show a little 'Pin' icon for pinned DMs in the server list: "},
|
showPinIcon: {value: true, inner: false, description: "Show a little 'Pin' icon for pinned DMs in the server list: "},
|
||||||
showCategoryUnread: {value: true, inner: false, description: "Show the amount of unread Messages in a category in the channel list: "},
|
showCategoryUnread: {value: true, inner: false, description: "Show the amount of unread Messages in a category in the channel list: "},
|
||||||
showCategoryAmount: {value: true, inner: false, description: "Show the amount of pinned DMs in a category in the channel list: "}
|
showCategoryAmount: {value: true, inner: false, description: "Show the amount of pinned DMs in a category in the channel list: "}
|
||||||
|
},
|
||||||
|
preCategories: {
|
||||||
|
friends: {value: false, description: "FRIENDS"},
|
||||||
|
blocked: {value: false, description: "BLOCKED"},
|
||||||
|
groups: {value: false, description: "GROUPS"}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -177,7 +182,6 @@ module.exports = (_ => {
|
||||||
getSettingsPanel (collapseStates = {}) {
|
getSettingsPanel (collapseStates = {}) {
|
||||||
let settingsPanel, settingsItems = [];
|
let settingsPanel, settingsItems = [];
|
||||||
|
|
||||||
|
|
||||||
for (let key in settings) if (!this.defaults.settings[key].inner) settingsItems.push(BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.SettingsSaveItem, {
|
for (let key in settings) if (!this.defaults.settings[key].inner) settingsItems.push(BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.SettingsSaveItem, {
|
||||||
type: "Switch",
|
type: "Switch",
|
||||||
plugin: this,
|
plugin: this,
|
||||||
|
@ -186,7 +190,9 @@ module.exports = (_ => {
|
||||||
value: settings[key]
|
value: settings[key]
|
||||||
}));
|
}));
|
||||||
settingsItems.push(BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.SettingsPanelList, {
|
settingsItems.push(BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.SettingsPanelList, {
|
||||||
title: "Sort pinned DMs in the recent message order instead of the pinned at order in:",
|
title: "Sort pinned DMs in the 'recent message' order instead of the 'pinned at' order in:",
|
||||||
|
dividerTop: true,
|
||||||
|
dividerBottom: true,
|
||||||
children: Object.keys(settings).map(key => this.defaults.settings[key].inner && BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.SettingsSaveItem, {
|
children: Object.keys(settings).map(key => this.defaults.settings[key].inner && BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.SettingsSaveItem, {
|
||||||
type: "Switch",
|
type: "Switch",
|
||||||
plugin: this,
|
plugin: this,
|
||||||
|
@ -195,6 +201,17 @@ module.exports = (_ => {
|
||||||
value: settings[key]
|
value: settings[key]
|
||||||
}))
|
}))
|
||||||
}));
|
}));
|
||||||
|
settingsItems.push(BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.SettingsPanelList, {
|
||||||
|
title: "Add predefined category for:",
|
||||||
|
dividerBottom: true,
|
||||||
|
children: Object.keys(preCategories).map(key => BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.SettingsSaveItem, {
|
||||||
|
type: "Switch",
|
||||||
|
plugin: this,
|
||||||
|
keys: ["preCategories", key],
|
||||||
|
label: BDFDB.LanguageUtils.LanguageStrings[this.defaults.preCategories[key].description],
|
||||||
|
value: preCategories[key]
|
||||||
|
}))
|
||||||
|
}));
|
||||||
settingsItems.push(BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.SettingsItem, {
|
settingsItems.push(BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.SettingsItem, {
|
||||||
type: "Button",
|
type: "Button",
|
||||||
color: BDFDB.LibraryComponents.Button.Colors.RED,
|
color: BDFDB.LibraryComponents.Button.Colors.RED,
|
||||||
|
@ -220,6 +237,8 @@ module.exports = (_ => {
|
||||||
|
|
||||||
forceUpdateAll () {
|
forceUpdateAll () {
|
||||||
settings = BDFDB.DataUtils.get(this, "settings");
|
settings = BDFDB.DataUtils.get(this, "settings");
|
||||||
|
preCategories = BDFDB.DataUtils.get(this, "preCategories");
|
||||||
|
preCollapseStates = BDFDB.DataUtils.load(this, "preCollapseStates");
|
||||||
|
|
||||||
BDFDB.ReactUtils.forceUpdate(BDFDB.ReactUtils.findOwner(document.querySelector(BDFDB.dotCN.app), {name: "FluxContainer(PrivateChannels)", all: true, unlimited: true}));
|
BDFDB.ReactUtils.forceUpdate(BDFDB.ReactUtils.findOwner(document.querySelector(BDFDB.dotCN.app), {name: "FluxContainer(PrivateChannels)", all: true, unlimited: true}));
|
||||||
BDFDB.PatchUtils.forceAllUpdates(this);
|
BDFDB.PatchUtils.forceAllUpdates(this);
|
||||||
|
@ -243,6 +262,7 @@ module.exports = (_ => {
|
||||||
}
|
}
|
||||||
|
|
||||||
injectItem (instance, id, children, index) {
|
injectItem (instance, id, children, index) {
|
||||||
|
if (!id) return;
|
||||||
let pinnedInGuild = this.isPinned(id, "pinnedRecents");
|
let pinnedInGuild = this.isPinned(id, "pinnedRecents");
|
||||||
|
|
||||||
let categories = this.sortAndUpdateCategories("dmCategories", true);
|
let categories = this.sortAndUpdateCategories("dmCategories", true);
|
||||||
|
@ -255,7 +275,11 @@ module.exports = (_ => {
|
||||||
BDFDB.ContextMenuUtils.createItem(BDFDB.LibraryComponents.MenuItems.MenuItem, {
|
BDFDB.ContextMenuUtils.createItem(BDFDB.LibraryComponents.MenuItems.MenuItem, {
|
||||||
label: this.labels.context_pinchannel_text,
|
label: this.labels.context_pinchannel_text,
|
||||||
id: BDFDB.ContextMenuUtils.createItemId(this.name, "submenu-channelist"),
|
id: BDFDB.ContextMenuUtils.createItemId(this.name, "submenu-channelist"),
|
||||||
children: [
|
children: this.getPredefinedCategory(id) ? BDFDB.ContextMenuUtils.createItem(BDFDB.LibraryComponents.MenuItems.MenuItem, {
|
||||||
|
label: this.labels.context_inpredefined_text,
|
||||||
|
id: BDFDB.ContextMenuUtils.createItemId(this.name, "in-predefined"),
|
||||||
|
disabled: true
|
||||||
|
}) : [
|
||||||
BDFDB.ContextMenuUtils.createItem(BDFDB.LibraryComponents.MenuItems.MenuGroup, {
|
BDFDB.ContextMenuUtils.createItem(BDFDB.LibraryComponents.MenuItems.MenuGroup, {
|
||||||
children: currentCategory ? BDFDB.ContextMenuUtils.createItem(BDFDB.LibraryComponents.MenuItems.MenuItem, {
|
children: currentCategory ? BDFDB.ContextMenuUtils.createItem(BDFDB.LibraryComponents.MenuItems.MenuItem, {
|
||||||
label: this.labels.context_unpinchannel_text,
|
label: this.labels.context_unpinchannel_text,
|
||||||
|
@ -281,7 +305,7 @@ module.exports = (_ => {
|
||||||
})
|
})
|
||||||
}),
|
}),
|
||||||
categories.length ? BDFDB.ContextMenuUtils.createItem(BDFDB.LibraryComponents.MenuItems.MenuGroup, {
|
categories.length ? BDFDB.ContextMenuUtils.createItem(BDFDB.LibraryComponents.MenuItems.MenuGroup, {
|
||||||
children: categories.map(category => currentCategory && currentCategory.id == category.id ? null : BDFDB.ContextMenuUtils.createItem(BDFDB.LibraryComponents.MenuItems.MenuItem, {
|
children: categories.map(category => currentCategory && currentCategory.id == category.id || category.predefined ? null : BDFDB.ContextMenuUtils.createItem(BDFDB.LibraryComponents.MenuItems.MenuItem, {
|
||||||
label: category.name || this.labels.header_pinneddms_text,
|
label: category.name || this.labels.header_pinneddms_text,
|
||||||
id: BDFDB.ContextMenuUtils.createItemId(this.name, "pin-channellist", category.id),
|
id: BDFDB.ContextMenuUtils.createItemId(this.name, "pin-channellist", category.id),
|
||||||
action: _ => {
|
action: _ => {
|
||||||
|
@ -301,7 +325,7 @@ module.exports = (_ => {
|
||||||
else this.removePin(id, "pinnedRecents");
|
else this.removePin(id, "pinnedRecents");
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
]
|
].filter(n => n)
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -330,7 +354,7 @@ module.exports = (_ => {
|
||||||
BDFDB.ArrayUtils.remove(categories, maybedDraggedCategory, true);
|
BDFDB.ArrayUtils.remove(categories, maybedDraggedCategory, true);
|
||||||
categories.splice(categories.indexOf(maybedReleasedCategory) + 1, 0, maybedDraggedCategory);
|
categories.splice(categories.indexOf(maybedReleasedCategory) + 1, 0, maybedDraggedCategory);
|
||||||
let newCategories = {}, newPos = 0;
|
let newCategories = {}, newPos = 0;
|
||||||
for (let category of [].concat(categories).reverse()) newCategories[category.id] = Object.assign(category, {pos: newPos++});
|
for (let category of [].concat(categories).reverse()) if (!category.predefined) newCategories[category.id] = Object.assign(category, {pos: newPos++});
|
||||||
BDFDB.DataUtils.save(newCategories, this, "dmCategories");
|
BDFDB.DataUtils.save(newCategories, this, "dmCategories");
|
||||||
}
|
}
|
||||||
draggedCategory = null;
|
draggedCategory = null;
|
||||||
|
@ -339,7 +363,7 @@ module.exports = (_ => {
|
||||||
e.instance.props.pinnedChannelIds = {};
|
e.instance.props.pinnedChannelIds = {};
|
||||||
for (let category of [].concat(categories).reverse()) {
|
for (let category of [].concat(categories).reverse()) {
|
||||||
e.instance.props.pinnedChannelIds[category.id] = [];
|
e.instance.props.pinnedChannelIds[category.id] = [];
|
||||||
for (let id of this.sortDMsByTime(this.filterDMs(category.dms), "dmCategories").reverse()) {
|
for (let id of this.sortDMsByTime(this.filterDMs(category.dms, !category.predefined), "dmCategories").reverse()) {
|
||||||
BDFDB.ArrayUtils.remove(e.instance.props.privateChannelIds, id, true);
|
BDFDB.ArrayUtils.remove(e.instance.props.privateChannelIds, id, true);
|
||||||
if (!category.collapsed || e.instance.props.selectedChannelId == id) {
|
if (!category.collapsed || e.instance.props.selectedChannelId == id) {
|
||||||
e.instance.props.privateChannelIds.unshift(id);
|
e.instance.props.privateChannelIds.unshift(id);
|
||||||
|
@ -438,30 +462,30 @@ module.exports = (_ => {
|
||||||
let category = categories[args[0].section - 1];
|
let category = categories[args[0].section - 1];
|
||||||
if (category && draggedCategory != category.id) {
|
if (category && draggedCategory != category.id) {
|
||||||
let color = BDFDB.ColorUtils.convert(category.color, "RGBA");
|
let color = BDFDB.ColorUtils.convert(category.color, "RGBA");
|
||||||
let foundDMs = this.filterDMs(category.dms);
|
let foundDMs = this.filterDMs(category.dms, !category.predefined);
|
||||||
let unreadAmount = settings.showCategoryUnread && BDFDB.ArrayUtils.sum(foundDMs.map(id => BDFDB.LibraryModules.UnreadChannelUtils.getMentionCount(id)));
|
let unreadAmount = settings.showCategoryUnread && BDFDB.ArrayUtils.sum(foundDMs.map(id => BDFDB.LibraryModules.UnreadChannelUtils.getMentionCount(id)));
|
||||||
return [
|
return category.predefined && foundDMs.length < 1 ? null : [
|
||||||
BDFDB.ReactUtils.createElement("h2", {
|
BDFDB.ReactUtils.createElement("h2", {
|
||||||
className: BDFDB.DOMUtils.formatClassName(BDFDB.disCN.dmchannelheadercontainer, BDFDB.disCN._pindmspinnedchannelsheadercontainer, category.collapsed && BDFDB.disCN._pindmspinnedchannelsheadercollapsed, color && BDFDB.disCN._pindmspinnedchannelsheadercolored, BDFDB.disCN.namecontainernamecontainer),
|
className: BDFDB.DOMUtils.formatClassName(BDFDB.disCN.dmchannelheadercontainer, BDFDB.disCN._pindmspinnedchannelsheadercontainer, category.collapsed && BDFDB.disCN._pindmspinnedchannelsheadercollapsed, color && BDFDB.disCN._pindmspinnedchannelsheadercolored, BDFDB.disCN.namecontainernamecontainer),
|
||||||
categoryId: category.id,
|
categoryId: category.id,
|
||||||
onMouseDown: event => {
|
onMouseDown: category.predefined ? null : event => {
|
||||||
event = event.nativeEvent || event;
|
event = event.nativeEvent || event;
|
||||||
let node = BDFDB.DOMUtils.getParent(BDFDB.dotCN._pindmspinnedchannelsheadercontainer, event.target).cloneNode(true);
|
let node = BDFDB.DOMUtils.getParent(BDFDB.dotCN._pindmspinnedchannelsheadercontainer, event.target).cloneNode(true);
|
||||||
let mousemove = event2 => {
|
let mouseMove = event2 => {
|
||||||
if (Math.sqrt((event.pageX - event2.pageX)**2) > 20 || Math.sqrt((event.pageY - event2.pageY)**2) > 20) {
|
if (Math.sqrt((event.pageX - event2.pageX)**2) > 20 || Math.sqrt((event.pageY - event2.pageY)**2) > 20) {
|
||||||
BDFDB.ListenerUtils.stopEvent(event);
|
BDFDB.ListenerUtils.stopEvent(event);
|
||||||
draggedCategory = category.id;
|
draggedCategory = category.id;
|
||||||
this.updateContainer("dmCategories");
|
this.updateContainer("dmCategories");
|
||||||
let dragPreview = this.createDragPreview(node, event2);
|
let dragPreview = this.createDragPreview(node, event2);
|
||||||
document.removeEventListener("mousemove", mousemove);
|
document.removeEventListener("mousemove", mouseMove);
|
||||||
document.removeEventListener("mouseup", mouseup);
|
document.removeEventListener("mouseup", mouseUp);
|
||||||
let dragging = event3 => {
|
let dragging = event3 => {
|
||||||
this.updateDragPreview(dragPreview, event3);
|
this.updateDragPreview(dragPreview, event3);
|
||||||
let placeholder = BDFDB.DOMUtils.getParent(BDFDB.dotCN._pindmsdmchannelplaceholder, event3.target);
|
let placeholder = BDFDB.DOMUtils.getParent(BDFDB.dotCN._pindmsdmchannelplaceholder, event3.target);
|
||||||
let categoryNode = BDFDB.DOMUtils.getParent(BDFDB.dotCN._pindmspinnedchannelsheadercontainer, placeholder ? placeholder.previousSibling : event3.target);
|
let categoryNode = BDFDB.DOMUtils.getParent(BDFDB.dotCN._pindmspinnedchannelsheadercontainer, placeholder ? placeholder.previousSibling : event3.target);
|
||||||
let maybeHoveredCategory = categoryNode && categoryNode.getAttribute("categoryId");
|
let maybeHoveredCategory = categoryNode && categoryNode.getAttribute("categoryId");
|
||||||
let update = maybeHoveredCategory != hoveredCategory;
|
let update = maybeHoveredCategory != hoveredCategory;
|
||||||
if (maybeHoveredCategory) hoveredCategory = maybeHoveredCategory;
|
if (maybeHoveredCategory && !preCategories[maybeHoveredCategory]) hoveredCategory = maybeHoveredCategory;
|
||||||
else hoveredCategory = null;
|
else hoveredCategory = null;
|
||||||
if (update) this.updateContainer("dmCategories");
|
if (update) this.updateContainer("dmCategories");
|
||||||
};
|
};
|
||||||
|
@ -478,27 +502,39 @@ module.exports = (_ => {
|
||||||
document.addEventListener("mouseup", releasing);
|
document.addEventListener("mouseup", releasing);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
let mouseup = _ => {
|
let mouseUp = _ => {
|
||||||
document.removeEventListener("mousemove", mousemove);
|
document.removeEventListener("mousemove", mouseMove);
|
||||||
document.removeEventListener("mouseup", mouseup);
|
document.removeEventListener("mouseup", mouseUp);
|
||||||
};
|
};
|
||||||
document.addEventListener("mousemove", mousemove);
|
document.addEventListener("mousemove", mouseMove);
|
||||||
document.addEventListener("mouseup", mouseup);
|
document.addEventListener("mouseup", mouseUp);
|
||||||
},
|
},
|
||||||
onClick: _ => {
|
onClick: _ => {
|
||||||
if (foundDMs.length || !category.collapsed) {
|
if (foundDMs.length || !category.collapsed) {
|
||||||
category.collapsed = !category.collapsed;
|
category.collapsed = !category.collapsed;
|
||||||
BDFDB.DataUtils.save(category, this, "dmCategories", category.id);
|
if (category.predefined) {
|
||||||
|
preCollapseStates[category.id] = category.collapsed;
|
||||||
|
BDFDB.DataUtils.save(category.collapsed, this, "preCollapseStates", category.id);
|
||||||
|
}
|
||||||
|
else BDFDB.DataUtils.save(category, this, "dmCategories", category.id);
|
||||||
this.updateContainer("dmCategories");
|
this.updateContainer("dmCategories");
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onContextMenu: event => {
|
onContextMenu: event => {
|
||||||
BDFDB.ContextMenuUtils.open(this, event, BDFDB.ContextMenuUtils.createItem(BDFDB.LibraryComponents.MenuItems.MenuGroup, {
|
BDFDB.ContextMenuUtils.open(this, event, BDFDB.ContextMenuUtils.createItem(BDFDB.LibraryComponents.MenuItems.MenuGroup, {
|
||||||
children: [
|
children: category.predefined ? BDFDB.ContextMenuUtils.createItem(BDFDB.LibraryComponents.MenuItems.MenuItem, {
|
||||||
|
label: this.labels.context_disablepredefined_text,
|
||||||
|
id: BDFDB.ContextMenuUtils.createItemId(this.name, "disable-predefined"),
|
||||||
|
action: _ => {
|
||||||
|
preCategories[category.id] = false;
|
||||||
|
BDFDB.DataUtils.save(preCategories, this, "preCategories");
|
||||||
|
this.updateContainer("dmCategories");
|
||||||
|
}
|
||||||
|
}) : [
|
||||||
BDFDB.ContextMenuUtils.createItem(BDFDB.LibraryComponents.MenuItems.MenuItem, {
|
BDFDB.ContextMenuUtils.createItem(BDFDB.LibraryComponents.MenuItems.MenuItem, {
|
||||||
label: BDFDB.LanguageUtils.LanguageStrings.CATEGORY_SETTINGS,
|
label: BDFDB.LanguageUtils.LanguageStrings.CATEGORY_SETTINGS,
|
||||||
id: BDFDB.ContextMenuUtils.createItemId(this.name, "category-settings"),
|
id: BDFDB.ContextMenuUtils.createItemId(this.name, "category-settings"),
|
||||||
action: event2 => {
|
action: _ => {
|
||||||
this.openCategorySettingsModal(category, "dmCategories");
|
this.openCategorySettingsModal(category, "dmCategories");
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
|
@ -506,7 +542,7 @@ module.exports = (_ => {
|
||||||
label: BDFDB.LanguageUtils.LanguageStrings.DELETE_CATEGORY,
|
label: BDFDB.LanguageUtils.LanguageStrings.DELETE_CATEGORY,
|
||||||
id: BDFDB.ContextMenuUtils.createItemId(this.name, "remove-category"),
|
id: BDFDB.ContextMenuUtils.createItemId(this.name, "remove-category"),
|
||||||
color: BDFDB.LibraryComponents.MenuItems.Colors.DANGER,
|
color: BDFDB.LibraryComponents.MenuItems.Colors.DANGER,
|
||||||
action: event2 => {
|
action: _ => {
|
||||||
BDFDB.DataUtils.remove(this, "dmCategories", category.id);
|
BDFDB.DataUtils.remove(this, "dmCategories", category.id);
|
||||||
this.updateContainer("dmCategories");
|
this.updateContainer("dmCategories");
|
||||||
}
|
}
|
||||||
|
@ -603,7 +639,7 @@ module.exports = (_ => {
|
||||||
}
|
}
|
||||||
|
|
||||||
processPrivateChannel (e) {
|
processPrivateChannel (e) {
|
||||||
if (e.instance.props.channel) {
|
if (e.instance.props.channel && !this.getPredefinedCategory(e.instance.props.channel.id)) {
|
||||||
let category = this.getCategory(e.instance.props.channel.id, "dmCategories");
|
let category = this.getCategory(e.instance.props.channel.id, "dmCategories");
|
||||||
if (category) {
|
if (category) {
|
||||||
if (e.node) {
|
if (e.node) {
|
||||||
|
@ -612,17 +648,17 @@ module.exports = (_ => {
|
||||||
if (!settings.sortInRecentOrder) {
|
if (!settings.sortInRecentOrder) {
|
||||||
e.node.setAttribute("draggable", false);
|
e.node.setAttribute("draggable", false);
|
||||||
e.node.PinDMsMouseDownListener = event => {
|
e.node.PinDMsMouseDownListener = event => {
|
||||||
if (!BDFDB.BDUtils.isPluginEnabled("PinDMs")) e.node.removeEventListener("mousedown", e.node.PinDMsMouseDownListener);
|
if (!this.started) e.node.removeEventListener("mousedown", e.node.PinDMsMouseDownListener);
|
||||||
else {
|
else {
|
||||||
event = event.nativeEvent || event;
|
event = event.nativeEvent || event;
|
||||||
let mousemove = event2 => {
|
let mouseMove = event2 => {
|
||||||
if (Math.sqrt((event.pageX - event2.pageX)**2) > 20 || Math.sqrt((event.pageY - event2.pageY)**2) > 20) {
|
if (Math.sqrt((event.pageX - event2.pageX)**2) > 20 || Math.sqrt((event.pageY - event2.pageY)**2) > 20) {
|
||||||
BDFDB.ListenerUtils.stopEvent(event);
|
BDFDB.ListenerUtils.stopEvent(event);
|
||||||
draggedChannel = e.instance.props.channel.id;
|
draggedChannel = e.instance.props.channel.id;
|
||||||
this.updateContainer("dmCategories");
|
this.updateContainer("dmCategories");
|
||||||
let dragPreview = this.createDragPreview(e.node, event2);
|
let dragPreview = this.createDragPreview(e.node, event2);
|
||||||
document.removeEventListener("mousemove", mousemove);
|
document.removeEventListener("mousemove", mouseMove);
|
||||||
document.removeEventListener("mouseup", mouseup);
|
document.removeEventListener("mouseup", mouseUp);
|
||||||
let dragging = event3 => {
|
let dragging = event3 => {
|
||||||
this.updateDragPreview(dragPreview, event3);
|
this.updateDragPreview(dragPreview, event3);
|
||||||
let maybeHoveredChannel = null;
|
let maybeHoveredChannel = null;
|
||||||
|
@ -655,12 +691,12 @@ module.exports = (_ => {
|
||||||
document.addEventListener("mouseup", releasing);
|
document.addEventListener("mouseup", releasing);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
let mouseup = _ => {
|
let mouseUp = _ => {
|
||||||
document.removeEventListener("mousemove", mousemove);
|
document.removeEventListener("mousemove", mouseMove);
|
||||||
document.removeEventListener("mouseup", mouseup);
|
document.removeEventListener("mouseup", mouseUp);
|
||||||
};
|
};
|
||||||
document.addEventListener("mousemove", mousemove);
|
document.addEventListener("mousemove", mouseMove);
|
||||||
document.addEventListener("mouseup", mouseup);
|
document.addEventListener("mouseup", mouseUp);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
e.node.addEventListener("mousedown", e.node.PinDMsMouseDownListener);
|
e.node.addEventListener("mousedown", e.node.PinDMsMouseDownListener);
|
||||||
|
@ -763,8 +799,8 @@ module.exports = (_ => {
|
||||||
return categories[id] ? this.generateID() : id;
|
return categories[id] ? this.generateID() : id;
|
||||||
}
|
}
|
||||||
|
|
||||||
filterDMs (dms) {
|
filterDMs (dms, removePredefined) {
|
||||||
return dms.filter(id => BDFDB.LibraryModules.ChannelStore.getChannel(id));
|
return dms.filter(id => BDFDB.LibraryModules.ChannelStore.getChannel(id) && !(removePredefined && this.getPredefinedCategory(id)));
|
||||||
}
|
}
|
||||||
|
|
||||||
addToCategory (id, category, type) {
|
addToCategory (id, category, type) {
|
||||||
|
@ -791,6 +827,16 @@ module.exports = (_ => {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getPredefinedCategory (id) {
|
||||||
|
if (!id) return "";
|
||||||
|
let channel = BDFDB.LibraryModules.ChannelStore.getChannel(id);
|
||||||
|
if (!channel) return "";
|
||||||
|
else if (preCategories.friends && channel.isDM() && BDFDB.LibraryModules.FriendUtils.isFriend(channel.recipients[0])) return "friends";
|
||||||
|
else if (preCategories.blocked && channel.isDM() && BDFDB.LibraryModules.FriendUtils.isBlocked(channel.recipients[0])) return "blocked";
|
||||||
|
else if (preCategories.groups && channel.isGroupDM()) return "groups";
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
sortAndUpdateCategories (type, reverse) {
|
sortAndUpdateCategories (type, reverse) {
|
||||||
let data = BDFDB.ObjectUtils.sort(BDFDB.DataUtils.load(this, type), "pos"), newData = {};
|
let data = BDFDB.ObjectUtils.sort(BDFDB.DataUtils.load(this, type), "pos"), newData = {};
|
||||||
let sorted = [], pos = 0, sort = id => {
|
let sorted = [], pos = 0, sort = id => {
|
||||||
|
@ -805,6 +851,24 @@ module.exports = (_ => {
|
||||||
};
|
};
|
||||||
for (let id in data) sort(id);
|
for (let id in data) sort(id);
|
||||||
if (!BDFDB.equals(data, newData)) BDFDB.DataUtils.save(newData, this, type);
|
if (!BDFDB.equals(data, newData)) BDFDB.DataUtils.save(newData, this, type);
|
||||||
|
if (type == "dmCategories" && Object.keys(preCategories).some(type => preCategories[type])) {
|
||||||
|
let predefinedDMs = {};
|
||||||
|
for (let channelId of BDFDB.LibraryModules.DirectMessageStore.getPrivateChannelIds()) {
|
||||||
|
let category = this.getPredefinedCategory(channelId);
|
||||||
|
if (category) {
|
||||||
|
if (!predefinedDMs[category]) predefinedDMs[category] = [];
|
||||||
|
predefinedDMs[category].push(channelId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (let type in predefinedDMs) if (predefinedDMs[type].length) sorted.unshift({
|
||||||
|
predefined: true,
|
||||||
|
collapsed: preCollapseStates[type],
|
||||||
|
color: null,
|
||||||
|
dms: predefinedDMs[type],
|
||||||
|
id: type,
|
||||||
|
name: BDFDB.LanguageUtils.LanguageStrings[this.defaults.preCategories[type].description]
|
||||||
|
});
|
||||||
|
}
|
||||||
return (reverse ? sorted.reverse() : sorted).filter(n => n);
|
return (reverse ? sorted.reverse() : sorted).filter(n => n);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -943,6 +1007,8 @@ module.exports = (_ => {
|
||||||
case "hr": //croatian
|
case "hr": //croatian
|
||||||
return {
|
return {
|
||||||
context_pindm_text: "Prikljucite Izravnu Poruku",
|
context_pindm_text: "Prikljucite Izravnu Poruku",
|
||||||
|
context_disablepredefined_text: "Onemogući unaprijed definiranu kategoriju",
|
||||||
|
context_inpredefined_text: "Prikvačeno u unaprijed definiranoj kategoriji",
|
||||||
context_pinchannel_text: "Priložite popisu kanala",
|
context_pinchannel_text: "Priložite popisu kanala",
|
||||||
context_unpinchannel_text: "Ukloni s popisa kanala",
|
context_unpinchannel_text: "Ukloni s popisa kanala",
|
||||||
context_addtonewcategory_text: "Dodavanje u novu kategoriju",
|
context_addtonewcategory_text: "Dodavanje u novu kategoriju",
|
||||||
|
@ -954,6 +1020,8 @@ module.exports = (_ => {
|
||||||
case "da": //danish
|
case "da": //danish
|
||||||
return {
|
return {
|
||||||
context_pindm_text: "Fastgør PB",
|
context_pindm_text: "Fastgør PB",
|
||||||
|
context_disablepredefined_text: "Deaktiver foruddefineret kategori",
|
||||||
|
context_inpredefined_text: "Fastgjort i foruddefineret kategori",
|
||||||
context_pinchannel_text: "Vedhæft til kanalliste",
|
context_pinchannel_text: "Vedhæft til kanalliste",
|
||||||
context_unpinchannel_text: "Fjern fra kanalliste",
|
context_unpinchannel_text: "Fjern fra kanalliste",
|
||||||
context_addtonewcategory_text: "Føj til ny kategori",
|
context_addtonewcategory_text: "Føj til ny kategori",
|
||||||
|
@ -965,6 +1033,8 @@ module.exports = (_ => {
|
||||||
case "de": //german
|
case "de": //german
|
||||||
return {
|
return {
|
||||||
context_pindm_text: "Direktnachricht anheften",
|
context_pindm_text: "Direktnachricht anheften",
|
||||||
|
context_disablepredefined_text: "Vordefinierte Kategorie deaktivieren",
|
||||||
|
context_inpredefined_text: "In vordefinierter Kategorie angeheftet",
|
||||||
context_pinchannel_text: "An Kanalliste anheften",
|
context_pinchannel_text: "An Kanalliste anheften",
|
||||||
context_unpinchannel_text: "Von Kanalliste loslösen",
|
context_unpinchannel_text: "Von Kanalliste loslösen",
|
||||||
context_addtonewcategory_text: "Zur neuen Kategorie hinzufügen",
|
context_addtonewcategory_text: "Zur neuen Kategorie hinzufügen",
|
||||||
|
@ -976,6 +1046,8 @@ module.exports = (_ => {
|
||||||
case "es": //spanish
|
case "es": //spanish
|
||||||
return {
|
return {
|
||||||
context_pindm_text: "Anclar MD",
|
context_pindm_text: "Anclar MD",
|
||||||
|
context_disablepredefined_text: "Deshabilitar categoría predefinida",
|
||||||
|
context_inpredefined_text: "Anclado en una categoría predefinida",
|
||||||
context_pinchannel_text: "Adjuntar a la lista de canales",
|
context_pinchannel_text: "Adjuntar a la lista de canales",
|
||||||
context_unpinchannel_text: "Deshazte de la lista de canales",
|
context_unpinchannel_text: "Deshazte de la lista de canales",
|
||||||
context_addtonewcategory_text: "Agregar a nueva categoría",
|
context_addtonewcategory_text: "Agregar a nueva categoría",
|
||||||
|
@ -987,6 +1059,8 @@ module.exports = (_ => {
|
||||||
case "fr": //french
|
case "fr": //french
|
||||||
return {
|
return {
|
||||||
context_pindm_text: "Épingler MP",
|
context_pindm_text: "Épingler MP",
|
||||||
|
context_disablepredefined_text: "Désactiver la catégorie prédéfinie",
|
||||||
|
context_inpredefined_text: "Épinglé dans une catégorie prédéfinie",
|
||||||
context_pinchannel_text: "Épingler à la liste des salons",
|
context_pinchannel_text: "Épingler à la liste des salons",
|
||||||
context_unpinchannel_text: "Détacher de la liste des salons",
|
context_unpinchannel_text: "Détacher de la liste des salons",
|
||||||
context_addtonewcategory_text: "Ajouter à une nouvelle catégorie",
|
context_addtonewcategory_text: "Ajouter à une nouvelle catégorie",
|
||||||
|
@ -998,6 +1072,8 @@ module.exports = (_ => {
|
||||||
case "it": //italian
|
case "it": //italian
|
||||||
return {
|
return {
|
||||||
context_pindm_text: "Fissa il messaggio diretto",
|
context_pindm_text: "Fissa il messaggio diretto",
|
||||||
|
context_disablepredefined_text: "Disabilita la categoria predefinita",
|
||||||
|
context_inpredefined_text: "Bloccato in una categoria predefinita",
|
||||||
context_pinchannel_text: "Allega alla lista dei canali",
|
context_pinchannel_text: "Allega alla lista dei canali",
|
||||||
context_unpinchannel_text: "Rimuovi dalla lista dei canali",
|
context_unpinchannel_text: "Rimuovi dalla lista dei canali",
|
||||||
context_addtonewcategory_text: "Aggiungi a nuova categoria",
|
context_addtonewcategory_text: "Aggiungi a nuova categoria",
|
||||||
|
@ -1009,6 +1085,8 @@ module.exports = (_ => {
|
||||||
case "nl": //dutch
|
case "nl": //dutch
|
||||||
return {
|
return {
|
||||||
context_pindm_text: "PB pinnen",
|
context_pindm_text: "PB pinnen",
|
||||||
|
context_disablepredefined_text: "Schakel voorgedefinieerde categorie uit",
|
||||||
|
context_inpredefined_text: "Vastgemaakt in vooraf gedefinieerde categorie",
|
||||||
context_pinchannel_text: "Pin naar de kanalenlijst",
|
context_pinchannel_text: "Pin naar de kanalenlijst",
|
||||||
context_unpinchannel_text: "Losmaken van kanalenlijst",
|
context_unpinchannel_text: "Losmaken van kanalenlijst",
|
||||||
context_addtonewcategory_text: "Toevoegen aan nieuwe categorie",
|
context_addtonewcategory_text: "Toevoegen aan nieuwe categorie",
|
||||||
|
@ -1020,6 +1098,8 @@ module.exports = (_ => {
|
||||||
case "no": //norwegian
|
case "no": //norwegian
|
||||||
return {
|
return {
|
||||||
context_pindm_text: "Fest DM",
|
context_pindm_text: "Fest DM",
|
||||||
|
context_disablepredefined_text: "Deaktiver forhåndsdefinert kategori",
|
||||||
|
context_inpredefined_text: "Festet i forhåndsdefinert kategori",
|
||||||
context_pinchannel_text: "Fest på kanalliste",
|
context_pinchannel_text: "Fest på kanalliste",
|
||||||
context_unpinchannel_text: "Fjern fra kanalliste",
|
context_unpinchannel_text: "Fjern fra kanalliste",
|
||||||
context_addtonewcategory_text: "Legg til i ny kategori",
|
context_addtonewcategory_text: "Legg til i ny kategori",
|
||||||
|
@ -1031,6 +1111,8 @@ module.exports = (_ => {
|
||||||
case "pl": //polish
|
case "pl": //polish
|
||||||
return {
|
return {
|
||||||
context_pindm_text: "Przypnij PW",
|
context_pindm_text: "Przypnij PW",
|
||||||
|
context_disablepredefined_text: "Wyłącz wstępnie zdefiniowaną kategorię",
|
||||||
|
context_inpredefined_text: "Przypięty w predefiniowanej kategorii",
|
||||||
context_pinchannel_text: "Dołącz do listy kanałów",
|
context_pinchannel_text: "Dołącz do listy kanałów",
|
||||||
context_unpinchannel_text: "Usuń z listy kanałów",
|
context_unpinchannel_text: "Usuń z listy kanałów",
|
||||||
context_addtonewcategory_text: "Dodaj do nowej kategorii",
|
context_addtonewcategory_text: "Dodaj do nowej kategorii",
|
||||||
|
@ -1042,6 +1124,8 @@ module.exports = (_ => {
|
||||||
case "pt-BR": //portuguese (brazil)
|
case "pt-BR": //portuguese (brazil)
|
||||||
return {
|
return {
|
||||||
context_pindm_text: "Fixar MD",
|
context_pindm_text: "Fixar MD",
|
||||||
|
context_disablepredefined_text: "Desativar categoria predefinida",
|
||||||
|
context_inpredefined_text: "Fixado na categoria predefinida",
|
||||||
context_pinchannel_text: "Anexar à lista de canais",
|
context_pinchannel_text: "Anexar à lista de canais",
|
||||||
context_unpinchannel_text: "Remover da lista de canais",
|
context_unpinchannel_text: "Remover da lista de canais",
|
||||||
context_addtonewcategory_text: "Adicionar à nova categoria",
|
context_addtonewcategory_text: "Adicionar à nova categoria",
|
||||||
|
@ -1053,6 +1137,8 @@ module.exports = (_ => {
|
||||||
case "fi": //finnish
|
case "fi": //finnish
|
||||||
return {
|
return {
|
||||||
context_pindm_text: "Kiinnitä yksityisviestit",
|
context_pindm_text: "Kiinnitä yksityisviestit",
|
||||||
|
context_disablepredefined_text: "Poista ennalta määritetty luokka käytöstä",
|
||||||
|
context_inpredefined_text: "Kiinnitetty ennalta määritettyyn luokkaan",
|
||||||
context_pinchannel_text: "Liitä kanavaluetteloon",
|
context_pinchannel_text: "Liitä kanavaluetteloon",
|
||||||
context_unpinchannel_text: "Poista kanavaluettelosta",
|
context_unpinchannel_text: "Poista kanavaluettelosta",
|
||||||
context_addtonewcategory_text: "Lisää uuteen luokkaan",
|
context_addtonewcategory_text: "Lisää uuteen luokkaan",
|
||||||
|
@ -1064,6 +1150,8 @@ module.exports = (_ => {
|
||||||
case "sv": //swedish
|
case "sv": //swedish
|
||||||
return {
|
return {
|
||||||
context_pindm_text: "Fäst DM",
|
context_pindm_text: "Fäst DM",
|
||||||
|
context_disablepredefined_text: "Inaktivera fördefinierad kategori",
|
||||||
|
context_inpredefined_text: "Fäst i fördefinierad kategori",
|
||||||
context_pinchannel_text: "Fäst till kanallista",
|
context_pinchannel_text: "Fäst till kanallista",
|
||||||
context_unpinchannel_text: "Ta bort från kanallistan",
|
context_unpinchannel_text: "Ta bort från kanallistan",
|
||||||
context_addtonewcategory_text: "Lägg till i ny kategori",
|
context_addtonewcategory_text: "Lägg till i ny kategori",
|
||||||
|
@ -1075,6 +1163,8 @@ module.exports = (_ => {
|
||||||
case "tr": //turkish
|
case "tr": //turkish
|
||||||
return {
|
return {
|
||||||
context_pindm_text: "DM'yi Sabitle",
|
context_pindm_text: "DM'yi Sabitle",
|
||||||
|
context_disablepredefined_text: "Önceden tanımlanmış kategoriyi devre dışı bırakın",
|
||||||
|
context_inpredefined_text: "Önceden tanımlanmış kategoriye sabitlendi",
|
||||||
context_pinchannel_text: "Kanal listesine ekle",
|
context_pinchannel_text: "Kanal listesine ekle",
|
||||||
context_unpinchannel_text: "Kanal listesinden kaldır",
|
context_unpinchannel_text: "Kanal listesinden kaldır",
|
||||||
context_addtonewcategory_text: "Yeni kategoriye ekle",
|
context_addtonewcategory_text: "Yeni kategoriye ekle",
|
||||||
|
@ -1086,6 +1176,8 @@ module.exports = (_ => {
|
||||||
case "cs": //czech
|
case "cs": //czech
|
||||||
return {
|
return {
|
||||||
context_pindm_text: "Připnout PZ",
|
context_pindm_text: "Připnout PZ",
|
||||||
|
context_disablepredefined_text: "Zakázat předdefinovanou kategorii",
|
||||||
|
context_inpredefined_text: "Připnuto v předdefinované kategorii",
|
||||||
context_pinchannel_text: "Připojení k seznamu kanálů",
|
context_pinchannel_text: "Připojení k seznamu kanálů",
|
||||||
context_unpinchannel_text: "Odstranit ze seznamu kanálů",
|
context_unpinchannel_text: "Odstranit ze seznamu kanálů",
|
||||||
context_addtonewcategory_text: "Přidat do nové kategorie",
|
context_addtonewcategory_text: "Přidat do nové kategorie",
|
||||||
|
@ -1097,6 +1189,8 @@ module.exports = (_ => {
|
||||||
case "bg": //bulgarian
|
case "bg": //bulgarian
|
||||||
return {
|
return {
|
||||||
context_pindm_text: "Закачени ДС",
|
context_pindm_text: "Закачени ДС",
|
||||||
|
context_disablepredefined_text: "Деактивирайте предварително дефинираната категория",
|
||||||
|
context_inpredefined_text: "Фиксирано в предварително дефинирана категория",
|
||||||
context_pinchannel_text: "Прикачете към списъка с канали",
|
context_pinchannel_text: "Прикачете към списъка с канали",
|
||||||
context_unpinchannel_text: "Премахване от списъка с канали",
|
context_unpinchannel_text: "Премахване от списъка с канали",
|
||||||
context_addtonewcategory_text: "Добавяне към нова категория",
|
context_addtonewcategory_text: "Добавяне към нова категория",
|
||||||
|
@ -1108,6 +1202,8 @@ module.exports = (_ => {
|
||||||
case "ru": //russian
|
case "ru": //russian
|
||||||
return {
|
return {
|
||||||
context_pindm_text: "Закрепить ЛС",
|
context_pindm_text: "Закрепить ЛС",
|
||||||
|
context_disablepredefined_text: "Отключить предопределенную категорию",
|
||||||
|
context_inpredefined_text: "Закреплено в предопределенной категории",
|
||||||
context_pinchannel_text: "Прикрепить к списку каналов",
|
context_pinchannel_text: "Прикрепить к списку каналов",
|
||||||
context_unpinchannel_text: "Удалить из списка каналов",
|
context_unpinchannel_text: "Удалить из списка каналов",
|
||||||
context_addtonewcategory_text: "Добавить в новую категорию",
|
context_addtonewcategory_text: "Добавить в новую категорию",
|
||||||
|
@ -1119,6 +1215,8 @@ module.exports = (_ => {
|
||||||
case "uk": //ukrainian
|
case "uk": //ukrainian
|
||||||
return {
|
return {
|
||||||
context_pindm_text: "Закріпити ОП",
|
context_pindm_text: "Закріпити ОП",
|
||||||
|
context_disablepredefined_text: "Вимкнути заздалегідь визначену категорію",
|
||||||
|
context_inpredefined_text: "Закріплено в наперед визначеній категорії",
|
||||||
context_pinchannel_text: "Додайте до списку каналів",
|
context_pinchannel_text: "Додайте до списку каналів",
|
||||||
context_unpinchannel_text: "Видалити зі списку каналів",
|
context_unpinchannel_text: "Видалити зі списку каналів",
|
||||||
context_addtonewcategory_text: "Додати до нової категорії",
|
context_addtonewcategory_text: "Додати до нової категорії",
|
||||||
|
@ -1130,6 +1228,8 @@ module.exports = (_ => {
|
||||||
case "ja": //japanese
|
case "ja": //japanese
|
||||||
return {
|
return {
|
||||||
context_pindm_text: "DMピン",
|
context_pindm_text: "DMピン",
|
||||||
|
context_disablepredefined_text: "事前定義されたカテゴリを無効にする",
|
||||||
|
context_inpredefined_text: "事前定義されたカテゴリに固定",
|
||||||
context_pinchannel_text: "チャンネルリストに添付",
|
context_pinchannel_text: "チャンネルリストに添付",
|
||||||
context_unpinchannel_text: "チャンネルリストから削除",
|
context_unpinchannel_text: "チャンネルリストから削除",
|
||||||
context_addtonewcategory_text: "新しいカテゴリに追加",
|
context_addtonewcategory_text: "新しいカテゴリに追加",
|
||||||
|
@ -1141,6 +1241,8 @@ module.exports = (_ => {
|
||||||
case "zh-TW": //chinese (traditional)
|
case "zh-TW": //chinese (traditional)
|
||||||
return {
|
return {
|
||||||
context_pindm_text: "引腳直接留言",
|
context_pindm_text: "引腳直接留言",
|
||||||
|
context_disablepredefined_text: "禁用預定義類別",
|
||||||
|
context_inpredefined_text: "固定在預定義的類別中",
|
||||||
context_pinchannel_text: "附加到頻道列表",
|
context_pinchannel_text: "附加到頻道列表",
|
||||||
context_unpinchannel_text: "從頻道列表中刪除",
|
context_unpinchannel_text: "從頻道列表中刪除",
|
||||||
context_addtonewcategory_text: "添加到新類別",
|
context_addtonewcategory_text: "添加到新類別",
|
||||||
|
@ -1152,6 +1254,8 @@ module.exports = (_ => {
|
||||||
case "ko": //korean
|
case "ko": //korean
|
||||||
return {
|
return {
|
||||||
context_pindm_text: "비공개 메시지 고정",
|
context_pindm_text: "비공개 메시지 고정",
|
||||||
|
context_disablepredefined_text: "사전 정의 된 카테고리 비활성화",
|
||||||
|
context_inpredefined_text: "사전 정의 된 카테고리에 고정됨",
|
||||||
context_pinchannel_text: "채널 목록에 첨부",
|
context_pinchannel_text: "채널 목록에 첨부",
|
||||||
context_unpinchannel_text: "채널 목록에서 삭제",
|
context_unpinchannel_text: "채널 목록에서 삭제",
|
||||||
context_addtonewcategory_text: "새 카테고리에 추가",
|
context_addtonewcategory_text: "새 카테고리에 추가",
|
||||||
|
@ -1163,6 +1267,8 @@ module.exports = (_ => {
|
||||||
default: //default: english
|
default: //default: english
|
||||||
return {
|
return {
|
||||||
context_pindm_text: "Pin DM",
|
context_pindm_text: "Pin DM",
|
||||||
|
context_disablepredefined_text: "Disable predefined Category",
|
||||||
|
context_inpredefined_text: "Pinned in predefined Category",
|
||||||
context_pinchannel_text: "Pin to Channellist",
|
context_pinchannel_text: "Pin to Channellist",
|
||||||
context_unpinchannel_text: "Unpin from Channellist",
|
context_unpinchannel_text: "Unpin from Channellist",
|
||||||
context_addtonewcategory_text: "Add to new Category",
|
context_addtonewcategory_text: "Add to new Category",
|
||||||
|
|
|
@ -14,13 +14,8 @@ module.exports = (_ => {
|
||||||
"info": {
|
"info": {
|
||||||
"name": "ReadAllNotificationsButton",
|
"name": "ReadAllNotificationsButton",
|
||||||
"author": "DevilBro",
|
"author": "DevilBro",
|
||||||
"version": "1.6.3",
|
"version": "1.6.4",
|
||||||
"description": "Add a button to clear all notifications"
|
"description": "Add a button to clear all notifications"
|
||||||
},
|
|
||||||
"changeLog": {
|
|
||||||
"fixed": {
|
|
||||||
"Clear Mentions": "Works again"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -139,6 +134,8 @@ module.exports = (_ => {
|
||||||
value: settings[key]
|
value: settings[key]
|
||||||
})).concat(BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.SettingsPanelList, {
|
})).concat(BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.SettingsPanelList, {
|
||||||
title: "When left clicking the 'read all' button mark following Elements as read:",
|
title: "When left clicking the 'read all' button mark following Elements as read:",
|
||||||
|
first: false,
|
||||||
|
last: true,
|
||||||
children: Object.keys(settings).filter(key => this.defaults.settings[key].inner).map(key => BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.SettingsSaveItem, {
|
children: Object.keys(settings).filter(key => this.defaults.settings[key].inner).map(key => BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.SettingsSaveItem, {
|
||||||
type: "Switch",
|
type: "Switch",
|
||||||
plugin: this,
|
plugin: this,
|
||||||
|
@ -197,33 +194,6 @@ module.exports = (_ => {
|
||||||
BDFDB.PatchUtils.forceAllUpdates(this);
|
BDFDB.PatchUtils.forceAllUpdates(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
onUserContextMenu (e) {
|
|
||||||
if (e.instance.props.channel && e.type == "DMUserContextMenu") {
|
|
||||||
let [children, index] = BDFDB.ReactUtils.findParent(e.returnvalue, {name: BDFDB.LibraryComponents.MenuItems.MenuGroup});
|
|
||||||
if (index > -1) this.injectItem(children, e.instance.props.channel.id);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
onGroupDMContextMenu (e) {
|
|
||||||
if (e.instance.props.channel) {
|
|
||||||
let [children, index] = BDFDB.ReactUtils.findParent(e.returnvalue, {name: BDFDB.LibraryComponents.MenuItems.MenuGroup});
|
|
||||||
if (index > -1) this.injectItem(children, e.instance.props.channel.id);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
injectItem (children, channelId) {
|
|
||||||
children.unshift(BDFDB.ContextMenuUtils.createItem(BDFDB.LibraryComponents.MenuItems.MenuGroup, {
|
|
||||||
children: BDFDB.ContextMenuUtils.createItem(BDFDB.LibraryComponents.MenuItems.MenuItem, {
|
|
||||||
label: BDFDB.LanguageUtils.LanguageStrings.MARK_AS_READ,
|
|
||||||
id: "mark-dm-read",
|
|
||||||
disabled: !BDFDB.LibraryModules.DirectMessageUnreadStore.getUnreadPrivateChannelIds().includes(channelId),
|
|
||||||
action: _ => {
|
|
||||||
BDFDB.DMUtils.markAsRead(channelId);
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}));
|
|
||||||
}
|
|
||||||
|
|
||||||
processGuilds (e) {
|
processGuilds (e) {
|
||||||
if (typeof e.returnvalue.props.children == "function") {
|
if (typeof e.returnvalue.props.children == "function") {
|
||||||
let childrenRender = e.returnvalue.props.children;
|
let childrenRender = e.returnvalue.props.children;
|
||||||
|
|
Loading…
Reference in New Issue