PinDMs: Fix unexpected behaviours when using last message sort (#2324)
This commit is contained in:
parent
778d79cd35
commit
c311155d7c
2 changed files with 9 additions and 4 deletions
|
@ -9,7 +9,7 @@ import { Settings } from "@api/Settings";
|
||||||
import { UserStore } from "@webpack/common";
|
import { UserStore } from "@webpack/common";
|
||||||
|
|
||||||
import { DEFAULT_COLOR } from "./constants";
|
import { DEFAULT_COLOR } from "./constants";
|
||||||
import { forceUpdate } from "./index";
|
import { forceUpdate, PinOrder, PrivateChannelSortStore, settings } from "./index";
|
||||||
|
|
||||||
export interface Category {
|
export interface Category {
|
||||||
id: string;
|
id: string;
|
||||||
|
@ -106,7 +106,12 @@ export function categoryLen() {
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getAllUncollapsedChannels() {
|
export function getAllUncollapsedChannels() {
|
||||||
return categories.filter(c => !c.collapsed).map(c => c.channels).flat();
|
if (settings.store.pinOrder === PinOrder.LastMessage) {
|
||||||
|
const sortedChannels = PrivateChannelSortStore.getPrivateChannelIds();
|
||||||
|
return categories.filter(c => !c.collapsed).flatMap(c => sortedChannels.filter(channel => c.channels.includes(channel)));
|
||||||
|
}
|
||||||
|
|
||||||
|
return categories.filter(c => !c.collapsed).flatMap(c => c.channels);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getSections() {
|
export function getSections() {
|
||||||
|
|
|
@ -29,7 +29,7 @@ interface ChannelComponentProps {
|
||||||
|
|
||||||
const headerClasses = findByPropsLazy("privateChannelsHeaderContainer");
|
const headerClasses = findByPropsLazy("privateChannelsHeaderContainer");
|
||||||
|
|
||||||
const PrivateChannelSortStore = findStoreLazy("PrivateChannelSortStore") as { getPrivateChannelIds: () => string[]; };
|
export const PrivateChannelSortStore = findStoreLazy("PrivateChannelSortStore") as { getPrivateChannelIds: () => string[]; };
|
||||||
|
|
||||||
export let instance: any;
|
export let instance: any;
|
||||||
export const forceUpdate = () => instance?.props?._forceUpdate?.();
|
export const forceUpdate = () => instance?.props?._forceUpdate?.();
|
||||||
|
@ -236,7 +236,7 @@ export default definePlugin({
|
||||||
const category = categories[categoryIndex - 1];
|
const category = categories[categoryIndex - 1];
|
||||||
if (!category) return false;
|
if (!category) return false;
|
||||||
|
|
||||||
return category.collapsed && this.instance.props.selectedChannelId !== category.channels[channelIndex];
|
return category.collapsed && this.instance.props.selectedChannelId !== this.getCategoryChannels(category)[channelIndex];
|
||||||
},
|
},
|
||||||
|
|
||||||
getScrollOffset(channelId: string, rowHeight: number, padding: number, preRenderedChildren: number, originalOffset: number) {
|
getScrollOffset(channelId: string, rowHeight: number, padding: number, preRenderedChildren: number, originalOffset: number) {
|
||||||
|
|
Loading…
Reference in a new issue