stuff
This commit is contained in:
parent
aa7a25454b
commit
b2c97f92db
|
@ -14,12 +14,12 @@ module.exports = (_ => {
|
|||
"info": {
|
||||
"name": "PinDMs",
|
||||
"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"
|
||||
},
|
||||
"changeLog": {
|
||||
"fixed": {
|
||||
"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..."
|
||||
"added": {
|
||||
"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 hoveredChannel, draggedChannel, releasedChannel;
|
||||
|
||||
var settings = {};
|
||||
var settings = {}, preCategories = {}, preCollapseStates = {};
|
||||
|
||||
return class PinDMs extends Plugin {
|
||||
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: "},
|
||||
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: "}
|
||||
},
|
||||
preCategories: {
|
||||
friends: {value: false, description: "FRIENDS"},
|
||||
blocked: {value: false, description: "BLOCKED"},
|
||||
groups: {value: false, description: "GROUPS"}
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -177,7 +182,6 @@ module.exports = (_ => {
|
|||
getSettingsPanel (collapseStates = {}) {
|
||||
let settingsPanel, settingsItems = [];
|
||||
|
||||
|
||||
for (let key in settings) if (!this.defaults.settings[key].inner) settingsItems.push(BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.SettingsSaveItem, {
|
||||
type: "Switch",
|
||||
plugin: this,
|
||||
|
@ -186,7 +190,9 @@ module.exports = (_ => {
|
|||
value: settings[key]
|
||||
}));
|
||||
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, {
|
||||
type: "Switch",
|
||||
plugin: this,
|
||||
|
@ -195,6 +201,17 @@ module.exports = (_ => {
|
|||
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, {
|
||||
type: "Button",
|
||||
color: BDFDB.LibraryComponents.Button.Colors.RED,
|
||||
|
@ -220,6 +237,8 @@ module.exports = (_ => {
|
|||
|
||||
forceUpdateAll () {
|
||||
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.PatchUtils.forceAllUpdates(this);
|
||||
|
@ -243,6 +262,7 @@ module.exports = (_ => {
|
|||
}
|
||||
|
||||
injectItem (instance, id, children, index) {
|
||||
if (!id) return;
|
||||
let pinnedInGuild = this.isPinned(id, "pinnedRecents");
|
||||
|
||||
let categories = this.sortAndUpdateCategories("dmCategories", true);
|
||||
|
@ -255,7 +275,11 @@ module.exports = (_ => {
|
|||
BDFDB.ContextMenuUtils.createItem(BDFDB.LibraryComponents.MenuItems.MenuItem, {
|
||||
label: this.labels.context_pinchannel_text,
|
||||
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, {
|
||||
children: currentCategory ? BDFDB.ContextMenuUtils.createItem(BDFDB.LibraryComponents.MenuItems.MenuItem, {
|
||||
label: this.labels.context_unpinchannel_text,
|
||||
|
@ -281,7 +305,7 @@ module.exports = (_ => {
|
|||
})
|
||||
}),
|
||||
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,
|
||||
id: BDFDB.ContextMenuUtils.createItemId(this.name, "pin-channellist", category.id),
|
||||
action: _ => {
|
||||
|
@ -301,7 +325,7 @@ module.exports = (_ => {
|
|||
else this.removePin(id, "pinnedRecents");
|
||||
}
|
||||
})
|
||||
]
|
||||
].filter(n => n)
|
||||
}));
|
||||
}
|
||||
|
||||
|
@ -330,7 +354,7 @@ module.exports = (_ => {
|
|||
BDFDB.ArrayUtils.remove(categories, maybedDraggedCategory, true);
|
||||
categories.splice(categories.indexOf(maybedReleasedCategory) + 1, 0, maybedDraggedCategory);
|
||||
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");
|
||||
}
|
||||
draggedCategory = null;
|
||||
|
@ -339,7 +363,7 @@ module.exports = (_ => {
|
|||
e.instance.props.pinnedChannelIds = {};
|
||||
for (let category of [].concat(categories).reverse()) {
|
||||
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);
|
||||
if (!category.collapsed || e.instance.props.selectedChannelId == id) {
|
||||
e.instance.props.privateChannelIds.unshift(id);
|
||||
|
@ -438,30 +462,30 @@ module.exports = (_ => {
|
|||
let category = categories[args[0].section - 1];
|
||||
if (category && draggedCategory != category.id) {
|
||||
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)));
|
||||
return [
|
||||
return category.predefined && foundDMs.length < 1 ? null : [
|
||||
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),
|
||||
categoryId: category.id,
|
||||
onMouseDown: event => {
|
||||
onMouseDown: category.predefined ? null : event => {
|
||||
event = event.nativeEvent || event;
|
||||
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) {
|
||||
BDFDB.ListenerUtils.stopEvent(event);
|
||||
draggedCategory = category.id;
|
||||
this.updateContainer("dmCategories");
|
||||
let dragPreview = this.createDragPreview(node, event2);
|
||||
document.removeEventListener("mousemove", mousemove);
|
||||
document.removeEventListener("mouseup", mouseup);
|
||||
document.removeEventListener("mousemove", mouseMove);
|
||||
document.removeEventListener("mouseup", mouseUp);
|
||||
let dragging = event3 => {
|
||||
this.updateDragPreview(dragPreview, event3);
|
||||
let placeholder = BDFDB.DOMUtils.getParent(BDFDB.dotCN._pindmsdmchannelplaceholder, event3.target);
|
||||
let categoryNode = BDFDB.DOMUtils.getParent(BDFDB.dotCN._pindmspinnedchannelsheadercontainer, placeholder ? placeholder.previousSibling : event3.target);
|
||||
let maybeHoveredCategory = categoryNode && categoryNode.getAttribute("categoryId");
|
||||
let update = maybeHoveredCategory != hoveredCategory;
|
||||
if (maybeHoveredCategory) hoveredCategory = maybeHoveredCategory;
|
||||
if (maybeHoveredCategory && !preCategories[maybeHoveredCategory]) hoveredCategory = maybeHoveredCategory;
|
||||
else hoveredCategory = null;
|
||||
if (update) this.updateContainer("dmCategories");
|
||||
};
|
||||
|
@ -478,27 +502,39 @@ module.exports = (_ => {
|
|||
document.addEventListener("mouseup", releasing);
|
||||
}
|
||||
};
|
||||
let mouseup = _ => {
|
||||
document.removeEventListener("mousemove", mousemove);
|
||||
document.removeEventListener("mouseup", mouseup);
|
||||
let mouseUp = _ => {
|
||||
document.removeEventListener("mousemove", mouseMove);
|
||||
document.removeEventListener("mouseup", mouseUp);
|
||||
};
|
||||
document.addEventListener("mousemove", mousemove);
|
||||
document.addEventListener("mouseup", mouseup);
|
||||
document.addEventListener("mousemove", mouseMove);
|
||||
document.addEventListener("mouseup", mouseUp);
|
||||
},
|
||||
onClick: _ => {
|
||||
if (foundDMs.length || !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");
|
||||
}
|
||||
},
|
||||
onContextMenu: event => {
|
||||
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, {
|
||||
label: BDFDB.LanguageUtils.LanguageStrings.CATEGORY_SETTINGS,
|
||||
id: BDFDB.ContextMenuUtils.createItemId(this.name, "category-settings"),
|
||||
action: event2 => {
|
||||
action: _ => {
|
||||
this.openCategorySettingsModal(category, "dmCategories");
|
||||
}
|
||||
}),
|
||||
|
@ -506,7 +542,7 @@ module.exports = (_ => {
|
|||
label: BDFDB.LanguageUtils.LanguageStrings.DELETE_CATEGORY,
|
||||
id: BDFDB.ContextMenuUtils.createItemId(this.name, "remove-category"),
|
||||
color: BDFDB.LibraryComponents.MenuItems.Colors.DANGER,
|
||||
action: event2 => {
|
||||
action: _ => {
|
||||
BDFDB.DataUtils.remove(this, "dmCategories", category.id);
|
||||
this.updateContainer("dmCategories");
|
||||
}
|
||||
|
@ -603,7 +639,7 @@ module.exports = (_ => {
|
|||
}
|
||||
|
||||
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");
|
||||
if (category) {
|
||||
if (e.node) {
|
||||
|
@ -612,17 +648,17 @@ module.exports = (_ => {
|
|||
if (!settings.sortInRecentOrder) {
|
||||
e.node.setAttribute("draggable", false);
|
||||
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 {
|
||||
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) {
|
||||
BDFDB.ListenerUtils.stopEvent(event);
|
||||
draggedChannel = e.instance.props.channel.id;
|
||||
this.updateContainer("dmCategories");
|
||||
let dragPreview = this.createDragPreview(e.node, event2);
|
||||
document.removeEventListener("mousemove", mousemove);
|
||||
document.removeEventListener("mouseup", mouseup);
|
||||
document.removeEventListener("mousemove", mouseMove);
|
||||
document.removeEventListener("mouseup", mouseUp);
|
||||
let dragging = event3 => {
|
||||
this.updateDragPreview(dragPreview, event3);
|
||||
let maybeHoveredChannel = null;
|
||||
|
@ -655,12 +691,12 @@ module.exports = (_ => {
|
|||
document.addEventListener("mouseup", releasing);
|
||||
}
|
||||
};
|
||||
let mouseup = _ => {
|
||||
document.removeEventListener("mousemove", mousemove);
|
||||
document.removeEventListener("mouseup", mouseup);
|
||||
let mouseUp = _ => {
|
||||
document.removeEventListener("mousemove", mouseMove);
|
||||
document.removeEventListener("mouseup", mouseUp);
|
||||
};
|
||||
document.addEventListener("mousemove", mousemove);
|
||||
document.addEventListener("mouseup", mouseup);
|
||||
document.addEventListener("mousemove", mouseMove);
|
||||
document.addEventListener("mouseup", mouseUp);
|
||||
}
|
||||
};
|
||||
e.node.addEventListener("mousedown", e.node.PinDMsMouseDownListener);
|
||||
|
@ -763,8 +799,8 @@ module.exports = (_ => {
|
|||
return categories[id] ? this.generateID() : id;
|
||||
}
|
||||
|
||||
filterDMs (dms) {
|
||||
return dms.filter(id => BDFDB.LibraryModules.ChannelStore.getChannel(id));
|
||||
filterDMs (dms, removePredefined) {
|
||||
return dms.filter(id => BDFDB.LibraryModules.ChannelStore.getChannel(id) && !(removePredefined && this.getPredefinedCategory(id)));
|
||||
}
|
||||
|
||||
addToCategory (id, category, type) {
|
||||
|
@ -791,6 +827,16 @@ module.exports = (_ => {
|
|||
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) {
|
||||
let data = BDFDB.ObjectUtils.sort(BDFDB.DataUtils.load(this, type), "pos"), newData = {};
|
||||
let sorted = [], pos = 0, sort = id => {
|
||||
|
@ -805,6 +851,24 @@ module.exports = (_ => {
|
|||
};
|
||||
for (let id in data) sort(id);
|
||||
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);
|
||||
}
|
||||
|
||||
|
@ -943,6 +1007,8 @@ module.exports = (_ => {
|
|||
case "hr": //croatian
|
||||
return {
|
||||
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_unpinchannel_text: "Ukloni s popisa kanala",
|
||||
context_addtonewcategory_text: "Dodavanje u novu kategoriju",
|
||||
|
@ -954,6 +1020,8 @@ module.exports = (_ => {
|
|||
case "da": //danish
|
||||
return {
|
||||
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_unpinchannel_text: "Fjern fra kanalliste",
|
||||
context_addtonewcategory_text: "Føj til ny kategori",
|
||||
|
@ -965,6 +1033,8 @@ module.exports = (_ => {
|
|||
case "de": //german
|
||||
return {
|
||||
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_unpinchannel_text: "Von Kanalliste loslösen",
|
||||
context_addtonewcategory_text: "Zur neuen Kategorie hinzufügen",
|
||||
|
@ -976,6 +1046,8 @@ module.exports = (_ => {
|
|||
case "es": //spanish
|
||||
return {
|
||||
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_unpinchannel_text: "Deshazte de la lista de canales",
|
||||
context_addtonewcategory_text: "Agregar a nueva categoría",
|
||||
|
@ -987,6 +1059,8 @@ module.exports = (_ => {
|
|||
case "fr": //french
|
||||
return {
|
||||
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_unpinchannel_text: "Détacher de la liste des salons",
|
||||
context_addtonewcategory_text: "Ajouter à une nouvelle catégorie",
|
||||
|
@ -998,6 +1072,8 @@ module.exports = (_ => {
|
|||
case "it": //italian
|
||||
return {
|
||||
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_unpinchannel_text: "Rimuovi dalla lista dei canali",
|
||||
context_addtonewcategory_text: "Aggiungi a nuova categoria",
|
||||
|
@ -1009,6 +1085,8 @@ module.exports = (_ => {
|
|||
case "nl": //dutch
|
||||
return {
|
||||
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_unpinchannel_text: "Losmaken van kanalenlijst",
|
||||
context_addtonewcategory_text: "Toevoegen aan nieuwe categorie",
|
||||
|
@ -1020,6 +1098,8 @@ module.exports = (_ => {
|
|||
case "no": //norwegian
|
||||
return {
|
||||
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_unpinchannel_text: "Fjern fra kanalliste",
|
||||
context_addtonewcategory_text: "Legg til i ny kategori",
|
||||
|
@ -1031,6 +1111,8 @@ module.exports = (_ => {
|
|||
case "pl": //polish
|
||||
return {
|
||||
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_unpinchannel_text: "Usuń z listy kanałów",
|
||||
context_addtonewcategory_text: "Dodaj do nowej kategorii",
|
||||
|
@ -1042,6 +1124,8 @@ module.exports = (_ => {
|
|||
case "pt-BR": //portuguese (brazil)
|
||||
return {
|
||||
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_unpinchannel_text: "Remover da lista de canais",
|
||||
context_addtonewcategory_text: "Adicionar à nova categoria",
|
||||
|
@ -1053,6 +1137,8 @@ module.exports = (_ => {
|
|||
case "fi": //finnish
|
||||
return {
|
||||
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_unpinchannel_text: "Poista kanavaluettelosta",
|
||||
context_addtonewcategory_text: "Lisää uuteen luokkaan",
|
||||
|
@ -1064,6 +1150,8 @@ module.exports = (_ => {
|
|||
case "sv": //swedish
|
||||
return {
|
||||
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_unpinchannel_text: "Ta bort från kanallistan",
|
||||
context_addtonewcategory_text: "Lägg till i ny kategori",
|
||||
|
@ -1075,6 +1163,8 @@ module.exports = (_ => {
|
|||
case "tr": //turkish
|
||||
return {
|
||||
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_unpinchannel_text: "Kanal listesinden kaldır",
|
||||
context_addtonewcategory_text: "Yeni kategoriye ekle",
|
||||
|
@ -1086,6 +1176,8 @@ module.exports = (_ => {
|
|||
case "cs": //czech
|
||||
return {
|
||||
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_unpinchannel_text: "Odstranit ze seznamu kanálů",
|
||||
context_addtonewcategory_text: "Přidat do nové kategorie",
|
||||
|
@ -1097,6 +1189,8 @@ module.exports = (_ => {
|
|||
case "bg": //bulgarian
|
||||
return {
|
||||
context_pindm_text: "Закачени ДС",
|
||||
context_disablepredefined_text: "Деактивирайте предварително дефинираната категория",
|
||||
context_inpredefined_text: "Фиксирано в предварително дефинирана категория",
|
||||
context_pinchannel_text: "Прикачете към списъка с канали",
|
||||
context_unpinchannel_text: "Премахване от списъка с канали",
|
||||
context_addtonewcategory_text: "Добавяне към нова категория",
|
||||
|
@ -1108,6 +1202,8 @@ module.exports = (_ => {
|
|||
case "ru": //russian
|
||||
return {
|
||||
context_pindm_text: "Закрепить ЛС",
|
||||
context_disablepredefined_text: "Отключить предопределенную категорию",
|
||||
context_inpredefined_text: "Закреплено в предопределенной категории",
|
||||
context_pinchannel_text: "Прикрепить к списку каналов",
|
||||
context_unpinchannel_text: "Удалить из списка каналов",
|
||||
context_addtonewcategory_text: "Добавить в новую категорию",
|
||||
|
@ -1119,6 +1215,8 @@ module.exports = (_ => {
|
|||
case "uk": //ukrainian
|
||||
return {
|
||||
context_pindm_text: "Закріпити ОП",
|
||||
context_disablepredefined_text: "Вимкнути заздалегідь визначену категорію",
|
||||
context_inpredefined_text: "Закріплено в наперед визначеній категорії",
|
||||
context_pinchannel_text: "Додайте до списку каналів",
|
||||
context_unpinchannel_text: "Видалити зі списку каналів",
|
||||
context_addtonewcategory_text: "Додати до нової категорії",
|
||||
|
@ -1130,6 +1228,8 @@ module.exports = (_ => {
|
|||
case "ja": //japanese
|
||||
return {
|
||||
context_pindm_text: "DMピン",
|
||||
context_disablepredefined_text: "事前定義されたカテゴリを無効にする",
|
||||
context_inpredefined_text: "事前定義されたカテゴリに固定",
|
||||
context_pinchannel_text: "チャンネルリストに添付",
|
||||
context_unpinchannel_text: "チャンネルリストから削除",
|
||||
context_addtonewcategory_text: "新しいカテゴリに追加",
|
||||
|
@ -1141,6 +1241,8 @@ module.exports = (_ => {
|
|||
case "zh-TW": //chinese (traditional)
|
||||
return {
|
||||
context_pindm_text: "引腳直接留言",
|
||||
context_disablepredefined_text: "禁用預定義類別",
|
||||
context_inpredefined_text: "固定在預定義的類別中",
|
||||
context_pinchannel_text: "附加到頻道列表",
|
||||
context_unpinchannel_text: "從頻道列表中刪除",
|
||||
context_addtonewcategory_text: "添加到新類別",
|
||||
|
@ -1152,6 +1254,8 @@ module.exports = (_ => {
|
|||
case "ko": //korean
|
||||
return {
|
||||
context_pindm_text: "비공개 메시지 고정",
|
||||
context_disablepredefined_text: "사전 정의 된 카테고리 비활성화",
|
||||
context_inpredefined_text: "사전 정의 된 카테고리에 고정됨",
|
||||
context_pinchannel_text: "채널 목록에 첨부",
|
||||
context_unpinchannel_text: "채널 목록에서 삭제",
|
||||
context_addtonewcategory_text: "새 카테고리에 추가",
|
||||
|
@ -1163,6 +1267,8 @@ module.exports = (_ => {
|
|||
default: //default: english
|
||||
return {
|
||||
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_unpinchannel_text: "Unpin from Channellist",
|
||||
context_addtonewcategory_text: "Add to new Category",
|
||||
|
|
|
@ -14,13 +14,8 @@ module.exports = (_ => {
|
|||
"info": {
|
||||
"name": "ReadAllNotificationsButton",
|
||||
"author": "DevilBro",
|
||||
"version": "1.6.3",
|
||||
"version": "1.6.4",
|
||||
"description": "Add a button to clear all notifications"
|
||||
},
|
||||
"changeLog": {
|
||||
"fixed": {
|
||||
"Clear Mentions": "Works again"
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -139,6 +134,8 @@ module.exports = (_ => {
|
|||
value: settings[key]
|
||||
})).concat(BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.SettingsPanelList, {
|
||||
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, {
|
||||
type: "Switch",
|
||||
plugin: this,
|
||||
|
@ -197,33 +194,6 @@ module.exports = (_ => {
|
|||
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) {
|
||||
if (typeof e.returnvalue.props.children == "function") {
|
||||
let childrenRender = e.returnvalue.props.children;
|
||||
|
|
Loading…
Reference in New Issue