PinDMs no longer scrolls to original DM when clicking pinned DM
This commit is contained in:
parent
90e36040d5
commit
85a16ed078
|
@ -19,7 +19,7 @@ class PinDMs {
|
||||||
|
|
||||||
getDescription () {return "Allows you to pin DMs, making them appear at the top of your DM-list.";}
|
getDescription () {return "Allows you to pin DMs, making them appear at the top of your DM-list.";}
|
||||||
|
|
||||||
getVersion () {return "1.2.0";}
|
getVersion () {return "1.2.1";}
|
||||||
|
|
||||||
getAuthor () {return "DevilBro";}
|
getAuthor () {return "DevilBro";}
|
||||||
|
|
||||||
|
@ -47,7 +47,6 @@ class PinDMs {
|
||||||
|
|
||||||
this.UserStore = BDFDB.WebModules.findByProperties(["getUsers", "getUser"]);
|
this.UserStore = BDFDB.WebModules.findByProperties(["getUsers", "getUser"]);
|
||||||
this.ChannelUtils = BDFDB.WebModules.findByProperties(["getDMFromUserId"]);
|
this.ChannelUtils = BDFDB.WebModules.findByProperties(["getDMFromUserId"]);
|
||||||
this.PrivateChannelUtils = BDFDB.WebModules.findByProperties(["openPrivateChannel"]);
|
|
||||||
|
|
||||||
var observer = null;
|
var observer = null;
|
||||||
|
|
||||||
|
@ -66,18 +65,29 @@ class PinDMs {
|
||||||
});
|
});
|
||||||
BDFDB.addObserver(this, BDFDB.dotCN.appmount, {name:"dmContextObserver",instance:observer}, {childList: true});
|
BDFDB.addObserver(this, BDFDB.dotCN.appmount, {name:"dmContextObserver",instance:observer}, {childList: true});
|
||||||
|
|
||||||
$(BDFDB.dotCN.appmount).on("click." + this.getName(), BDFDB.dotCNS.dmchannels + BDFDB.dotCNS.dmchannel + BDFDB.dotCN.dmchannelclose, (e) => {
|
$(BDFDB.dotCN.appmount)
|
||||||
let instance = BDFDB.getReactInstance(e.currentTarget);
|
.on("click." + this.getName(), BDFDB.dotCNS.dmchannels + BDFDB.dotCNS.dmchannel, (e) => {
|
||||||
if (instance.return.return.return.return.return.memoizedProps.ispin) {
|
let instance = BDFDB.getReactInstance(e.currentTarget);
|
||||||
e.stopPropagation();
|
if (instance.return.return.return.memoizedProps.ispin) {
|
||||||
e.preventDefault();
|
let dmsscroller = document.querySelector(BDFDB.dotCNS.dmchannels + BDFDB.dotCN.scroller);
|
||||||
let dmsscroller = document.querySelector(BDFDB.dotCNS.dmchannels + BDFDB.dotCN.scroller);
|
if (dmsscroller) {
|
||||||
if (dmsscroller) {
|
this.oldSrollerPos = dmsscroller.scrollTop;
|
||||||
this.removePinnedDM(instance.return.return.return.return.return.memoizedProps.channel.id, BDFDB.getReactInstance(dmsscroller).return.return.return.memoizedProps.children);
|
setImmediate(() => {this.oldSrollerPos = null;});
|
||||||
this.forceUpdateScroller(dmsscroller);
|
}
|
||||||
}
|
}
|
||||||
}
|
})
|
||||||
});
|
.on("click." + this.getName(), BDFDB.dotCNS.dmchannels + BDFDB.dotCNS.dmchannel + BDFDB.dotCN.dmchannelclose, (e) => {
|
||||||
|
let instance = BDFDB.getReactInstance(e.currentTarget);
|
||||||
|
if (instance.return.return.return.return.return.memoizedProps.ispin) {
|
||||||
|
e.stopPropagation();
|
||||||
|
e.preventDefault();
|
||||||
|
let dmsscroller = document.querySelector(BDFDB.dotCNS.dmchannels + BDFDB.dotCN.scroller);
|
||||||
|
if (dmsscroller) {
|
||||||
|
this.removePinnedDM(instance.return.return.return.return.return.memoizedProps.channel.id, BDFDB.getReactInstance(dmsscroller).return.return.return.memoizedProps.children);
|
||||||
|
this.forceUpdateScroller(dmsscroller);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
setTimeout(() => {this.patchDMsScroller();},1000);
|
setTimeout(() => {this.patchDMsScroller();},1000);
|
||||||
}
|
}
|
||||||
|
@ -178,12 +188,17 @@ class PinDMs {
|
||||||
for (let pos in sortedDMs) this.addPinnedDM(sortedDMs[pos], dmsarray, insertpoint);
|
for (let pos in sortedDMs) this.addPinnedDM(sortedDMs[pos], dmsarray, insertpoint);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
this.patchCancels.push(BDFDB.WebModules.monkeyPatch(BDFDB.WebModules.findByName("LazyScroller").prototype, "render", {before: (e) => {
|
this.patchCancels.push(BDFDB.WebModules.monkeyPatch(BDFDB.WebModules.findByName("LazyScroller").prototype, "render", {
|
||||||
if (e.thisObject._reactInternalFiber.return.memoizedProps.privateChannelIds && !e.thisObject.props.PinDMsPatched) {
|
before: (e) => {
|
||||||
e.thisObject.props.PinDMsPatched = true;
|
if (e.thisObject._reactInternalFiber.return.memoizedProps.privateChannelIds && !e.thisObject.props.PinDMsPatched) {
|
||||||
addAllDMs(e.thisObject.props.children);
|
e.thisObject.props.PinDMsPatched = true;
|
||||||
|
addAllDMs(e.thisObject.props.children);
|
||||||
|
}
|
||||||
|
if (e.thisObject._reactInternalFiber.return.memoizedProps.privateChannelIds && this.oldSrollerPos != null) {
|
||||||
|
e.thisObject.getScrollerNode().scrollTop = this.oldSrollerPos;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}}));
|
}));
|
||||||
let dmsscroller = document.querySelector(BDFDB.dotCNS.dmchannels + BDFDB.dotCN.scroller);
|
let dmsscroller = document.querySelector(BDFDB.dotCNS.dmchannels + BDFDB.dotCN.scroller);
|
||||||
if (dmsscroller) {
|
if (dmsscroller) {
|
||||||
addAllDMs(BDFDB.getReactInstance(dmsscroller).return.return.return.memoizedProps.children);
|
addAllDMs(BDFDB.getReactInstance(dmsscroller).return.return.return.memoizedProps.children);
|
||||||
|
|
Loading…
Reference in New Issue