Skip to content

Commit 6ed9174

Browse files
committed
Update ServerFolders.plugin.js
1 parent d2c23f5 commit 6ed9174

1 file changed

Lines changed: 148 additions & 151 deletions

File tree

Plugins/ServerFolders/ServerFolders.plugin.js

Lines changed: 148 additions & 151 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
* @name ServerFolders
33
* @author DevilBro
44
* @authorId 278543574059057154
5-
* @version 7.4.9
5+
* @version 7.5.0
66
* @description Changes Discord's Folders, Servers open in a new Container, also adds extra Features to more easily organize, customize and manage your Folders
77
* @invite Jx3TjNS
88
* @donate https://www.paypal.me/MircoWittrien
@@ -112,173 +112,170 @@ module.exports = (_ => {
112112
tabindex: 0,
113113
"data-list-id": "guildfoldersnav",
114114
className: BDFDB.disCN.guildstree,
115-
children: BDFDB.ReactUtils.createElement("div", {
116-
className: BDFDB.disCN.guildswrapperitems,
117-
children: BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.Scrollers.None, {
118-
className: BDFDB.disCNS.stack + BDFDB.disCN.guildsscroller,
119-
onScroll: e => scrollPosition = e.target.scrollTop,
120-
children: BDFDB.ReactUtils.createElement("div", {
121-
className: BDFDB.disCN.stack,
122-
"aria-label": BDFDB.LanguageUtils.LanguageStrings.SERVERS,
123-
children: GuildItemComponent && this.props.folders.map(folder => {
124-
let data = _this.getFolderConfig(folder.folderId);
125-
let folderIcon = null;
126-
if (_this.settings.general.addFolderIcon) {
127-
let folderIcons = _this.loadAllIcons();
128-
folderIcon = folderIcons[data.iconID] ? (!folderIcons[data.iconID].customID ? _this.createBase64SVG(folderIcons[data.iconID].openicon, data.color1, data.color2) : folderIcons[data.iconID].openicon) : null;
129-
folderIcon = folderIcon ? BDFDB.ReactUtils.createElement("div", {
130-
className: BDFDB.disCN.guildfolderbutton,
131-
onClick: _ => BDFDB.LibraryModules.GuildUtils.toggleGuildFolderExpand(folder.folderId),
115+
children: BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.Scrollers.None, {
116+
className: BDFDB.disCNS.stack + BDFDB.disCN.guildsscroller,
117+
onScroll: e => scrollPosition = e.target.scrollTop,
118+
children: BDFDB.ReactUtils.createElement("div", {
119+
className: BDFDB.disCN.stack,
120+
"aria-label": BDFDB.LanguageUtils.LanguageStrings.SERVERS,
121+
children: GuildItemComponent && this.props.folders.map(folder => {
122+
let data = _this.getFolderConfig(folder.folderId);
123+
let folderIcon = null;
124+
if (_this.settings.general.addFolderIcon) {
125+
let folderIcons = _this.loadAllIcons();
126+
folderIcon = folderIcons[data.iconID] ? (!folderIcons[data.iconID].customID ? _this.createBase64SVG(folderIcons[data.iconID].openicon, data.color1, data.color2) : folderIcons[data.iconID].openicon) : null;
127+
folderIcon = folderIcon ? BDFDB.ReactUtils.createElement("div", {
128+
className: BDFDB.disCN.guildfolderbutton,
129+
onClick: _ => BDFDB.LibraryModules.GuildUtils.toggleGuildFolderExpand(folder.folderId),
130+
children: BDFDB.ReactUtils.createElement("div", {
131+
className: BDFDB.disCN.guildfolderbuttoncontent,
132132
children: BDFDB.ReactUtils.createElement("div", {
133-
className: BDFDB.disCN.guildfolderbuttoncontent,
133+
className: BDFDB.disCN.guildfoldericonwrapper,
134134
children: BDFDB.ReactUtils.createElement("div", {
135-
className: BDFDB.disCN.guildfoldericonwrapper,
136-
children: BDFDB.ReactUtils.createElement("div", {
137-
className: BDFDB.disCN.guildfoldericon,
138-
style: {background: `url(${folderIcon}) center/cover no-repeat`}
139-
})
135+
className: BDFDB.disCN.guildfoldericon,
136+
style: {background: `url(${folderIcon}) center/cover no-repeat`}
140137
})
141138
})
142-
}) : BDFDB.ReactUtils.createElement("div", {
143-
className: BDFDB.disCN.guildfolderbutton,
144-
onClick: _ => BDFDB.LibraryModules.GuildUtils.toggleGuildFolderExpand(folder.folderId),
139+
})
140+
}) : BDFDB.ReactUtils.createElement("div", {
141+
className: BDFDB.disCN.guildfolderbutton,
142+
onClick: _ => BDFDB.LibraryModules.GuildUtils.toggleGuildFolderExpand(folder.folderId),
143+
children: BDFDB.ReactUtils.createElement("div", {
144+
className: BDFDB.disCN.guildfolderbuttoncontent,
145145
children: BDFDB.ReactUtils.createElement("div", {
146-
className: BDFDB.disCN.guildfolderbuttoncontent,
146+
className: BDFDB.disCN.guildfoldericonwrapper,
147147
children: BDFDB.ReactUtils.createElement("div", {
148-
className: BDFDB.disCN.guildfoldericonwrapper,
149-
children: BDFDB.ReactUtils.createElement("div", {
150-
className: BDFDB.disCN.guildfoldericon,
151-
children: BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.SvgIcon, {
152-
name: BDFDB.LibraryComponents.SvgIcon.Names.FOLDER,
153-
style: {color: BDFDB.ColorUtils.convert(folder.folderColor || BDFDB.DiscordConstants.Colors.BRAND, "RGB")}
154-
})
148+
className: BDFDB.disCN.guildfoldericon,
149+
children: BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.SvgIcon, {
150+
name: BDFDB.LibraryComponents.SvgIcon.Names.FOLDER,
151+
style: {color: BDFDB.ColorUtils.convert(folder.folderColor || BDFDB.DiscordConstants.Colors.BRAND, "RGB")}
155152
})
156153
})
157154
})
158-
});
159-
}
160-
return BDFDB.ReactUtils.createElement("div", {
161-
className: BDFDB.disCNS.stack + BDFDB.disCNS.guildfolderwrapper + BDFDB.disCN.guildfolderisexpanded,
162-
style: {"--custom-folder-color": folder.folderColor ? BDFDB.ColorUtils.convert(folder.folderColor, "RGB") : null},
163-
children: [
164-
_this.settings.general.addFolderBackground && BDFDB.ReactUtils.createElement("span", {
165-
className: BDFDB.disCN.guildfolderexpandedbackground
166-
}),
167-
folderIcon && BDFDB.ReactUtils.createElement("div", {
168-
className: BDFDB.disCN.guildouter,
169-
children: BDFDB.ReactUtils.createElement("div", {
170-
className: BDFDB.disCN.guildfolder,
171-
"data-folder-name": folder.folderName || BDFDB.LanguageUtils.LanguageStrings.FOLDER,
172-
children: folderIcon
173-
})
174-
}),
175-
BDFDB.ReactUtils.createElement("ul", {
176-
className: BDFDB.disCN.stack,
177-
role: "group",
178-
children: folder.guildIds.map(guildId => {
179-
let guildIstance;
180-
return [
181-
this.draggedGuild == guildId ? null : BDFDB.ReactUtils.createElement("div", {
182-
ref: instance => guildIstance = instance,
183-
children: BDFDB.ReactUtils.createElement(GuildItemComponent, {
184-
guildNode: {
185-
children: [],
186-
id: guildId,
187-
parentId: folder.folderId,
188-
type: "guild",
189-
unavailable: false
155+
})
156+
});
157+
}
158+
return BDFDB.ReactUtils.createElement("div", {
159+
className: BDFDB.disCNS.stack + BDFDB.disCNS.guildfolderwrapper + BDFDB.disCN.guildfolderisexpanded,
160+
style: {"--custom-folder-color": folder.folderColor ? BDFDB.ColorUtils.convert(folder.folderColor, "RGB") : null},
161+
children: [
162+
_this.settings.general.addFolderBackground && BDFDB.ReactUtils.createElement("span", {
163+
className: BDFDB.disCN.guildfolderexpandedbackground
164+
}),
165+
folderIcon && BDFDB.ReactUtils.createElement("div", {
166+
className: BDFDB.disCN.guildouter,
167+
children: BDFDB.ReactUtils.createElement("div", {
168+
className: BDFDB.disCN.guildfolder,
169+
"data-folder-name": folder.folderName || BDFDB.LanguageUtils.LanguageStrings.FOLDER,
170+
children: folderIcon
171+
})
172+
}),
173+
BDFDB.ReactUtils.createElement("ul", {
174+
className: BDFDB.disCN.stack,
175+
role: "group",
176+
children: folder.guildIds.map(guildId => {
177+
let guildIstance;
178+
return [
179+
this.draggedGuild == guildId ? null : BDFDB.ReactUtils.createElement("div", {
180+
ref: instance => guildIstance = instance,
181+
children: BDFDB.ReactUtils.createElement(GuildItemComponent, {
182+
guildNode: {
183+
children: [],
184+
id: guildId,
185+
parentId: folder.folderId,
186+
type: "guild",
187+
unavailable: false
188+
}
189+
}),
190+
onClick: event => {
191+
if (BDFDB.ListenerUtils.isPressed(46)) {
192+
BDFDB.ListenerUtils.stopEvent(event);
193+
_this.removeGuildFromFolder(folder.folderId, guildId);
194+
}
195+
else {
196+
if (_this.settings.general.closeAllFolders) {
197+
for (let openFolderId of BDFDB.LibraryStores.ExpandedGuildFolderStore.getExpandedFolders()) if (openFolderId != folder.folderId || !_this.settings.general.forceOpenFolder) BDFDB.LibraryModules.GuildUtils.toggleGuildFolderExpand(openFolderId);
190198
}
191-
}),
192-
onClick: event => {
193-
if (BDFDB.ListenerUtils.isPressed(46)) {
199+
else if (_this.settings.general.closeTheFolder && !_this.settings.general.forceOpenFolder && BDFDB.LibraryStores.ExpandedGuildFolderStore.isFolderExpanded(folder.folderId)) BDFDB.LibraryModules.GuildUtils.toggleGuildFolderExpand(folder.folderId);
200+
else BDFDB.ReactUtils.forceUpdate(this);
201+
}
202+
},
203+
onMouseDown: event => {
204+
event = event.nativeEvent || event;
205+
let mouseMove = event2 => {
206+
if (Math.sqrt((event.pageX - event2.pageX)**2) > 20 || Math.sqrt((event.pageY - event2.pageY)**2) > 20) {
194207
BDFDB.ListenerUtils.stopEvent(event);
195-
_this.removeGuildFromFolder(folder.folderId, guildId);
196-
}
197-
else {
198-
if (_this.settings.general.closeAllFolders) {
199-
for (let openFolderId of BDFDB.LibraryStores.ExpandedGuildFolderStore.getExpandedFolders()) if (openFolderId != folder.folderId || !_this.settings.general.forceOpenFolder) BDFDB.LibraryModules.GuildUtils.toggleGuildFolderExpand(openFolderId);
200-
}
201-
else if (_this.settings.general.closeTheFolder && !_this.settings.general.forceOpenFolder && BDFDB.LibraryStores.ExpandedGuildFolderStore.isFolderExpanded(folder.folderId)) BDFDB.LibraryModules.GuildUtils.toggleGuildFolderExpand(folder.folderId);
202-
else BDFDB.ReactUtils.forceUpdate(this);
203-
}
204-
},
205-
onMouseDown: event => {
206-
event = event.nativeEvent || event;
207-
let mouseMove = event2 => {
208-
if (Math.sqrt((event.pageX - event2.pageX)**2) > 20 || Math.sqrt((event.pageY - event2.pageY)**2) > 20) {
209-
BDFDB.ListenerUtils.stopEvent(event);
210-
this.draggedGuild = guildId;
211-
let dragPreview = _this.createDragPreview(BDFDB.ReactUtils.findDOMNode(guildIstance).cloneNode(true), event2);
212-
BDFDB.ReactUtils.forceUpdate(this);
213-
document.removeEventListener("mousemove", mouseMove);
214-
document.removeEventListener("mouseup", mouseUp);
215-
let dragging = event3 => {
216-
_this.updateDragPreview(dragPreview, event3);
217-
let placeholder = BDFDB.DOMUtils.getParent(BDFDB.dotCN._serverfoldersguildplaceholder, event3.target);
218-
let hoveredGuild = (BDFDB.ReactUtils.findValue(BDFDB.DOMUtils.getParent(BDFDB.dotCNS._serverfoldersfoldercontent + BDFDB.dotCN.guildouter, placeholder ? placeholder.previousSibling : event3.target), "guild", {up: true}) || {}).id;
219-
if (hoveredGuild) {
220-
let hoveredGuildFolder = BDFDB.GuildUtils.getFolder(hoveredGuild);
221-
if (!hoveredGuildFolder || hoveredGuildFolder.folderId != folder.folderId) hoveredGuild = null;
222-
}
223-
let update = hoveredGuild != this.hoveredGuild;
224-
if (hoveredGuild) this.hoveredGuild = hoveredGuild;
225-
else delete this.hoveredGuild;
226-
if (update) BDFDB.ReactUtils.forceUpdate(this);
227-
};
228-
let releasing = event3 => {
229-
BDFDB.ListenerUtils.stopEvent(event3);
230-
BDFDB.DOMUtils.remove(dragPreview);
231-
if (this.hoveredGuild) {
232-
let guildIds = [].concat(folder.guildIds);
233-
BDFDB.ArrayUtils.remove(guildIds, this.draggedGuild, true);
234-
guildIds.splice(guildIds.indexOf(this.hoveredGuild) + 1, 0, this.draggedGuild);
235-
_this.updateFolder(Object.assign({}, folder, {guildIds}));
236-
}
237-
delete this.draggedGuild;
238-
delete this.hoveredGuild;
239-
BDFDB.ReactUtils.forceUpdate(this);
240-
document.removeEventListener("mousemove", dragging);
241-
document.removeEventListener("mouseup", releasing);
242-
};
243-
document.addEventListener("mousemove", dragging);
244-
document.addEventListener("mouseup", releasing);
245-
}
246-
};
247-
let mouseUp = _ => {
208+
this.draggedGuild = guildId;
209+
let dragPreview = _this.createDragPreview(BDFDB.ReactUtils.findDOMNode(guildIstance).cloneNode(true), event2);
210+
BDFDB.ReactUtils.forceUpdate(this);
248211
document.removeEventListener("mousemove", mouseMove);
249212
document.removeEventListener("mouseup", mouseUp);
250-
};
251-
document.addEventListener("mousemove", mouseMove);
252-
document.addEventListener("mouseup", mouseUp);
253-
}
254-
}),
255-
this.hoveredGuild != guildId ? null : BDFDB.ReactUtils.createElement("div", {
256-
className: BDFDB.disCNS.guildouter + BDFDB.disCN._serverfoldersguildplaceholder,
257-
children: BDFDB.ReactUtils.createElement("div", {
258-
children: BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.Mask, {
259-
mask: BDFDB.LibraryComponents.Mask.Masks.SQUIRCLE,
260-
className: BDFDB.disCN.guildplaceholdermask,
261-
width: 48,
262-
height: 48,
263-
style: {display:"block"},
264-
children: BDFDB.ReactUtils.createElement("div", {
265-
className: BDFDB.disCN.guildplaceholder
266-
})
213+
let dragging = event3 => {
214+
_this.updateDragPreview(dragPreview, event3);
215+
let placeholder = BDFDB.DOMUtils.getParent(BDFDB.dotCN._serverfoldersguildplaceholder, event3.target);
216+
let hoveredGuild = (BDFDB.ReactUtils.findValue(BDFDB.DOMUtils.getParent(BDFDB.dotCNS._serverfoldersfoldercontent + BDFDB.dotCN.guildouter, placeholder ? placeholder.previousSibling : event3.target), "guild", {up: true}) || {}).id;
217+
if (hoveredGuild) {
218+
let hoveredGuildFolder = BDFDB.GuildUtils.getFolder(hoveredGuild);
219+
if (!hoveredGuildFolder || hoveredGuildFolder.folderId != folder.folderId) hoveredGuild = null;
220+
}
221+
let update = hoveredGuild != this.hoveredGuild;
222+
if (hoveredGuild) this.hoveredGuild = hoveredGuild;
223+
else delete this.hoveredGuild;
224+
if (update) BDFDB.ReactUtils.forceUpdate(this);
225+
};
226+
let releasing = event3 => {
227+
BDFDB.ListenerUtils.stopEvent(event3);
228+
BDFDB.DOMUtils.remove(dragPreview);
229+
if (this.hoveredGuild) {
230+
let guildIds = [].concat(folder.guildIds);
231+
BDFDB.ArrayUtils.remove(guildIds, this.draggedGuild, true);
232+
guildIds.splice(guildIds.indexOf(this.hoveredGuild) + 1, 0, this.draggedGuild);
233+
_this.updateFolder(Object.assign({}, folder, {guildIds}));
234+
}
235+
delete this.draggedGuild;
236+
delete this.hoveredGuild;
237+
BDFDB.ReactUtils.forceUpdate(this);
238+
document.removeEventListener("mousemove", dragging);
239+
document.removeEventListener("mouseup", releasing);
240+
};
241+
document.addEventListener("mousemove", dragging);
242+
document.addEventListener("mouseup", releasing);
243+
}
244+
};
245+
let mouseUp = _ => {
246+
document.removeEventListener("mousemove", mouseMove);
247+
document.removeEventListener("mouseup", mouseUp);
248+
};
249+
document.addEventListener("mousemove", mouseMove);
250+
document.addEventListener("mouseup", mouseUp);
251+
}
252+
}),
253+
this.hoveredGuild != guildId ? null : BDFDB.ReactUtils.createElement("div", {
254+
className: BDFDB.disCNS.guildouter + BDFDB.disCN._serverfoldersguildplaceholder,
255+
children: BDFDB.ReactUtils.createElement("div", {
256+
children: BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.Mask, {
257+
mask: BDFDB.LibraryComponents.Mask.Masks.SQUIRCLE,
258+
className: BDFDB.disCN.guildplaceholdermask,
259+
width: 48,
260+
height: 48,
261+
style: {display:"block"},
262+
children: BDFDB.ReactUtils.createElement("div", {
263+
className: BDFDB.disCN.guildplaceholder
267264
})
268265
})
269266
})
270-
]
271-
})
267+
})
268+
]
272269
})
273-
]
274-
})
275-
}).filter(n => n).reduce((r, a) => r.concat(a, _this.settings.general.addSeparators ? BDFDB.ReactUtils.createElement("div", {
276-
className: BDFDB.disCN.guildouter,
277-
children: BDFDB.ReactUtils.createElement("div", {
278-
className: BDFDB.disCN.guildseparator
279-
})
280-
}) : null), [0]).slice(1, -1).flat(10).filter(n => n)
281-
})
270+
})
271+
]
272+
})
273+
}).filter(n => n).reduce((r, a) => r.concat(a, _this.settings.general.addSeparators ? BDFDB.ReactUtils.createElement("div", {
274+
className: BDFDB.disCN.guildouter,
275+
children: BDFDB.ReactUtils.createElement("div", {
276+
className: BDFDB.disCN.guildseparator
277+
})
278+
}) : null), [0]).slice(1, -1).flat(10).filter(n => n)
282279
})
283280
})
284281
})

0 commit comments

Comments
 (0)