From 785759acc5588d66d8e15ef17d5f70928a74459d Mon Sep 17 00:00:00 2001 From: Mirco Wittrien Date: Mon, 16 Nov 2020 09:51:45 +0100 Subject: [PATCH] Update BetterFriendList.plugin.js --- .../BetterFriendList.plugin.js | 112 +++++++++--------- 1 file changed, 59 insertions(+), 53 deletions(-) diff --git a/Plugins/BetterFriendList/BetterFriendList.plugin.js b/Plugins/BetterFriendList/BetterFriendList.plugin.js index 4df547da3b..7a5661f9ee 100644 --- a/Plugins/BetterFriendList/BetterFriendList.plugin.js +++ b/Plugins/BetterFriendList/BetterFriendList.plugin.js @@ -14,8 +14,13 @@ module.exports = (_ => { "info": { "name": "BetterFriendList", "author": "DevilBro", - "version": "1.3.0", + "version": "1.3.1", "description": "Add extra controls to the friends page, like sort by name/status, search and all/request/blocked amount" + }, + "changeLog": { + "fixed": { + "Crash": "No longer crashes when pressing Ctrl in the friend list" + } } }; @@ -210,65 +215,66 @@ module.exports = (_ => { return newSection; }); } - let getSectionTitle = e.instance.props.getSectionTitle; - e.instance.props.getSectionTitle = (...args) => { - let users = e.instance.props.statusSections.flat(10); - return BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.Flex, { - align: BDFDB.LibraryComponents.Flex.Align.CENTER, - children: [ - BDFDB.ReactUtils.createElement("div", { - className: BDFDB.disCN._betterfriendlisttitle, - children: getSectionTitle(...args).replace(users.length, users.filter(u => u && u.key != placeHolderId).length) - }), - settings.addSortOptions && [ - {key: "usernameLower", label: BDFDB.LanguageUtils.LanguageStrings.FRIENDS_COLUMN_NAME}, - {key: "statusIndex", label: BDFDB.LanguageUtils.LanguageStrings.FRIENDS_COLUMN_STATUS} - ].filter(n => n).map(data => BDFDB.ReactUtils.createElement("div", { - className: BDFDB.DOMUtils.formatClassName(BDFDB.disCN.tableheadercellwrapper, BDFDB.disCN.tableheadercell, BDFDB.disCN._betterfriendlistnamecell, sortKey == data.key && BDFDB.disCN.tableheadercellsorted, BDFDB.disCN.tableheadercellclickable), - children: BDFDB.ReactUtils.createElement("div", { - className: BDFDB.disCN.tableheadercellcontent, - children: [ - data.label, - sortKey == data.key && BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.SvgIcon, { - className: BDFDB.disCN.tableheadersorticon, - name: BDFDB.LibraryComponents.SvgIcon.Names[sortReversed ? "ARROW_UP" : "ARROW_DOWN"] - }) - ].filter(n => n) + if (!BDFDB.PatchUtils.isPatched(this, e.instance.props, "getSectionTitle")) BDFDB.PatchUtils.patch(this, e.instance.props, "getSectionTitle", {after: e2 => { + if (typeof e2.returnValue == "string") { + let users = e.instance.props.statusSections.flat(10); + return BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.Flex, { + align: BDFDB.LibraryComponents.Flex.Align.CENTER, + children: [ + BDFDB.ReactUtils.createElement("div", { + className: BDFDB.disCN._betterfriendlisttitle, + children: e2.returnValue.replace(users.length, users.filter(u => u && u.key != placeHolderId).length) }), - onClick: event => { - if (sortKey == data.key) { - if (!sortReversed) sortReversed = true; + settings.addSortOptions && [ + {key: "usernameLower", label: BDFDB.LanguageUtils.LanguageStrings.FRIENDS_COLUMN_NAME}, + {key: "statusIndex", label: BDFDB.LanguageUtils.LanguageStrings.FRIENDS_COLUMN_STATUS} + ].filter(n => n).map(data => BDFDB.ReactUtils.createElement("div", { + className: BDFDB.DOMUtils.formatClassName(BDFDB.disCN.tableheadercellwrapper, BDFDB.disCN.tableheadercell, BDFDB.disCN._betterfriendlistnamecell, sortKey == data.key && BDFDB.disCN.tableheadercellsorted, BDFDB.disCN.tableheadercellclickable), + children: BDFDB.ReactUtils.createElement("div", { + className: BDFDB.disCN.tableheadercellcontent, + children: [ + data.label, + sortKey == data.key && BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.SvgIcon, { + className: BDFDB.disCN.tableheadersorticon, + name: BDFDB.LibraryComponents.SvgIcon.Names[sortReversed ? "ARROW_UP" : "ARROW_DOWN"] + }) + ].filter(n => n) + }), + onClick: event => { + if (sortKey == data.key) { + if (!sortReversed) sortReversed = true; + else { + sortKey = null; + sortReversed = false; + } + } else { - sortKey = null; + sortKey = data.key; sortReversed = false; } - } - else { - sortKey = data.key; - sortReversed = false; - } - this.rerenderList(); - } - })), - settings.addSearchbar && BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.Flex.Child, { - children: BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.SearchBar, { - query: searchQuery, - onChange: value => { - BDFDB.TimeUtils.clear(searchTimeout); - searchTimeout = BDFDB.TimeUtils.timeout(_ => { - searchQuery = value; - this.rerenderList(); - }, 1000); - }, - onClear: _ => { - searchQuery = ""; this.rerenderList(); } + })), + settings.addSearchbar && BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.Flex.Child, { + children: BDFDB.ReactUtils.createElement(BDFDB.LibraryComponents.SearchBar, { + query: searchQuery, + onChange: value => { + BDFDB.TimeUtils.clear(searchTimeout); + searchTimeout = BDFDB.TimeUtils.timeout(_ => { + searchQuery = value; + this.rerenderList(); + }, 1000); + }, + onClear: _ => { + searchQuery = ""; + this.rerenderList(); + } + }) }) - }) - ].flat(10).filter(n => n) - }); - }; + ].flat(10).filter(n => n) + }); + } + }}, {force: true, noCache: true}); } processPeopleListSectionedNonLazy (e) {