decord/source/modules/threads/ThreadBrowserHooks.tsx

193 lines
8.8 KiB
TypeScript
Raw Normal View History

// Module ID: 12831
// Function ID: 12832
// Name: ThreadBrowserHooks
// Dependencies: [32, 19, 12832, 1957, 4243, 4620, 5557, 7817, 4245, 1085, 7832, 504, 12, 1369, 11, 7816, 7950, 2]
2026-07-29 08:29:29 +00:00
// Exports: useActiveGuildThreads, useActiveThreadIds, useActiveThreads, useArchivedThreads, useTrackThreadBrowserTab
2026-07-20 16:05:17 +00:00
// Module 12831 (ThreadBrowserHooks)
import _modDef12 from "module_12" /* 12 */;
import GlobalUtils from "GlobalUtils" /* 1369 */;
import ThreadActionCreatorsDefault from "ThreadActionCreators" /* 7816 */;
import ForumActionCreatorsDefault from "ForumActionCreators" /* 7950 */;
import _slicedToArray from "module_32" /* 32 */;
import noop from "module_19" /* 19 */;
import ChannelStore from "ChannelStore" /* 1957 */;
import PermissionStore from "PermissionStore" /* 4243 */;
import ReadStateStore from "ReadStateStore" /* 4620 */;
import ActiveThreadsStore from "ActiveThreadsStore" /* 5557 */;
import ArchivedThreadsStore from "ArchivedThreadsStore" /* 7817 */;
import JoinedThreadsStore from "JoinedThreadsStore" /* 4245 */;
2026-07-23 10:11:24 +00:00
const require = globalThis.__r;
require = fn;
let closure_5 = fn(12832).useShouldShowResolvedFlagsForChannel;
const Permissions = fn(1085).Permissions;
const size = fn(2);
let result = size.fileFinishedImporting("modules/threads/ThreadBrowserHooks.tsx");
2026-07-29 08:29:29 +00:00
export const useTrackThreadBrowserTab = function useTrackThreadBrowserTab() {
const effect = noop.useEffect(() => {
const result = require("ThreadUtils").trackThreadBrowserTab();
2026-07-29 08:29:29 +00:00
}, []);
};
export const useActiveThreadIds = function useActiveThreadIds(arg0) {
_require = arg0;
const items = [PermissionStore, ActiveThreadsStore, ChannelStore];
2026-07-20 16:05:17 +00:00
const items1 = [, ];
2026-07-29 08:29:29 +00:00
({ guild_id: arr2[0], id: arr2[1] } = arg0);
const stateFromStoresArray = require("initialize").useStateFromStoresArray(items, () => {
const values = _modDef12(ActiveThreadsStore.getThreadsForParent(memo.guild_id, memo.id)).values();
2026-07-29 08:29:29 +00:00
const mapped = values.map((id) => channel.getChannel(id.id));
const found = mapped.filter(GlobalUtils.isNotNullish);
const found1 = found.filter((item) => closure_1_7.can(constants.VIEW_CHANNEL, item));
const tmpResult = _modDef12(ActiveThreadsStore.getThreadsForParent(memo.guild_id, memo.id));
2026-07-20 16:05:17 +00:00
return found1.map((id) => id.id).value();
}, items1);
const items2 = [stateFromStoresArray];
return noop.useMemo(() => {
const sorted = _modDef12(closure_1_1).sort((arg0, arg1) => {
const obj = closure_1_1(closure_1_2[14]);
return obj.compare(closure_1_8.lastMessageId(arg0), closure_1_8.lastMessageId(arg1));
2026-07-20 16:05:17 +00:00
});
let obj = _modDef12(closure_1_1);
2026-07-20 16:05:17 +00:00
return sorted.reverse().value();
}, items2);
};
export const useActiveThreads = function useActiveThreads(channel) {
closure_129_0 = channel;
const items = [PermissionStore, ActiveThreadsStore, ChannelStore];
2026-07-29 08:29:29 +00:00
const items1 = [, ];
({ guild_id: arr2[0], id: arr2[1] } = channel);
const stateFromStoresArray = memo(504).useStateFromStoresArray(items, () => {
const values = _modDef12(ActiveThreadsStore.getThreadsForParent(memo.guild_id, memo.id)).values();
2026-07-29 08:29:29 +00:00
const mapped = values.map((id) => channel.getChannel(id.id));
const found = mapped.filter(GlobalUtils.isNotNullish);
const found1 = found.filter((item) => closure_1_7.can(constants.VIEW_CHANNEL, item));
const tmpResult = _modDef12(ActiveThreadsStore.getThreadsForParent(memo.guild_id, memo.id));
2026-07-29 08:29:29 +00:00
return found1.map((id) => id.id).value();
}, items1);
closure_129_1 = stateFromStoresArray;
2026-07-29 08:29:29 +00:00
const items2 = [stateFromStoresArray];
memo = noop.useMemo(() => {
const sorted = _modDef12(closure_1_1).sort((arg0, arg1) => {
const obj = closure_1_1(closure_1_2[14]);
return obj.compare(closure_1_8.lastMessageId(arg0), closure_1_8.lastMessageId(arg1));
2026-07-29 08:29:29 +00:00
});
let obj = _modDef12(closure_1_1);
2026-07-29 08:29:29 +00:00
return sorted.reverse().value();
}, items2);
let obj = memo(504);
const items3 = [JoinedThreadsStore];
2026-07-29 08:29:29 +00:00
const items4 = [memo];
const tmp3 = _slicedToArray(memo(504).useStateFromStores(items3, () => _modDef12.partition(memo, (id) => closure_1_11.hasJoined(id)), items4, memo(504).statesWillNeverBeEqual), 2);
return { joinedThreadIds: tmp3[0], unjoinedThreadIds: tmp3[1] };
2026-07-20 16:05:17 +00:00
};
export const useActiveGuildThreads = function useActiveGuildThreads(arg0) {
_require = arg0;
const items = [PermissionStore, ActiveThreadsStore, ChannelStore];
2026-07-20 16:05:17 +00:00
const items1 = [arg0];
const stateFromStoresArray = require("initialize").useStateFromStoresArray(items, () => {
const values = _modDef12(ActiveThreadsStore.getThreadsForGuild(closure_0)).values();
const mapped = values.map((item) => stateFromStoresArray(closure_1_2[12]).values(item));
const tmpResult = _modDef12(ActiveThreadsStore.getThreadsForGuild(closure_0));
2026-07-29 08:29:29 +00:00
const mapped1 = mapped.flatten().map((id) => channel.getChannel(id.id));
const found = mapped1.filter(GlobalUtils.isNotNullish);
const found1 = found.filter((item) => closure_1_7.can(constants.VIEW_CHANNEL, item));
2026-07-20 16:05:17 +00:00
const flattenResult = mapped.flatten();
return found1.map((id) => id.id).value();
}, items1);
const items2 = [stateFromStoresArray];
return noop.useMemo(() => {
const sorted = _modDef12(stateFromStoresArray).sort((arg0, arg1) => {
const obj = stateFromStoresArray(closure_1_2[14]);
return obj.compare(closure_1_8.lastMessageId(arg0), closure_1_8.lastMessageId(arg1));
2026-07-20 16:05:17 +00:00
});
let obj = _modDef12(stateFromStoresArray);
2026-07-20 16:05:17 +00:00
return sorted.reverse().value();
}, items2);
};
2026-07-28 08:39:19 +00:00
export const useArchivedThreads = function useArchivedThreads(channel, LATEST_ACTIVITY, loadMore, MATCH_SOME) {
_require = channel;
const sortOrder = LATEST_ACTIVITY;
2026-08-24 06:08:38 +00:00
dependencyMap = loadMore;
const tagSetting = MATCH_SOME;
2026-07-20 16:05:17 +00:00
const result = channel.isModeratorReportChannel();
noop = result;
2026-07-23 10:11:24 +00:00
showResolvedFlags = showResolvedFlags(channel.id).showResolvedFlags;
const items = [ArchivedThreadsStore];
const stateFromStoresObject = require("initialize").useStateFromStoresObject(items, () => ({ loading: ArchivedThreadsStore.isLoading(user.id, closure_1, closure_2, closure_3), isInitialLoad: ArchivedThreadsStore.getIsInitialLoad(user.id, closure_1, closure_2, closure_3), canLoadMore: ArchivedThreadsStore.getCanLoadMore(user.id, closure_1, closure_2, closure_3), nextOffset: ArchivedThreadsStore.getNextOffset(user.id, closure_1, closure_2, closure_3) }));
2026-07-20 16:05:17 +00:00
({ loading, nextOffset } = stateFromStoresObject);
const isInitialLoad = stateFromStoresObject.isInitialLoad;
2026-07-28 08:39:19 +00:00
const items1 = [channel, LATEST_ACTIVITY, loadMore, MATCH_SOME, nextOffset, showResolvedFlags, result];
loadMore = noop.useCallback(() => {
const canResult = PermissionStore.can(Permissions.READ_MESSAGE_HISTORY, closure_0);
2026-07-29 08:29:29 +00:00
let tmp3 = !canResult;
if (canResult) {
let tmp4 = result;
if (result) {
2026-07-29 08:29:29 +00:00
tmp4 = !showResolvedFlags;
2026-07-20 16:05:17 +00:00
}
2026-07-29 08:29:29 +00:00
tmp3 = tmp4;
2026-07-20 16:05:17 +00:00
}
2026-07-29 08:29:29 +00:00
if (!tmp3) {
const obj3 = { guildId: null, channelId: null, sortOrder: null, tagFilter: null, tagSetting: null, offset: null };
({ guild_id: obj2.guildId, id: obj2.channelId } = closure_0);
obj3.sortOrder = sortOrder;
obj3.tagFilter = tagFilter;
obj3.tagSetting = tagSetting;
obj3.offset = nextOffset;
const archivedThreads = ThreadActionCreatorsDefault.loadArchivedThreads(obj3);
2026-07-20 16:05:17 +00:00
}
}, items1);
noop.useRef(loadMore);
const effect = noop.useEffect(() => {
closure_9.current = current;
2026-07-20 16:05:17 +00:00
});
2026-07-28 08:39:19 +00:00
const items2 = [channel.id, LATEST_ACTIVITY, loadMore, isInitialLoad, showResolvedFlags];
const effect1 = noop.useEffect(() => {
2026-07-20 16:05:17 +00:00
if (isInitialLoad) {
ref.current();
}
}, items2);
const items3 = [channel.id, showResolvedFlags];
const effect2 = noop.useEffect(() => {
ForumActionCreatorsDefault.resort(user.id);
2026-07-20 16:05:17 +00:00
}, items3);
const obj2 = { threadIds: null, canLoadMore: null, loading: null, loadMore: null };
let obj = require("initialize");
const items4 = [ArchivedThreadsStore, nextOffset, isInitialLoad];
obj2.threadIds = require("initialize").useStateFromStoresArray(items4, () => {
const tmpResult = _modDef12(ArchivedThreadsStore.getThreads(user.id, closure_1, closure_2, closure_3));
return _modDef12(ArchivedThreadsStore.getThreads(user.id, closure_1, closure_2, closure_3)).filter((item) => {
if (closure_1_4) {
if (!showResolvedFlags) {
return false;
2026-08-24 06:08:38 +00:00
}
}
const channel = nextOffset.getChannel(item);
let canResult = null != channel;
if (canResult) {
canResult = isInitialLoad.can(constants.VIEW_CHANNEL, channel);
}
if (canResult) {
canResult = !channel.isMediaThread();
}
return canResult;
}).value();
});
obj2.canLoadMore = stateFromStoresObject.canLoadMore;
2026-07-20 16:05:17 +00:00
if (!loading) {
loading = isInitialLoad;
}
if (loading) {
loading = showResolvedFlags;
}
if (loading) {
2026-07-23 10:11:24 +00:00
loading = isInitialLoad.can(Permissions.READ_MESSAGE_HISTORY, channel);
2026-07-20 16:05:17 +00:00
}
obj2.loading = loading;
obj2.loadMore = loadMore;
return obj2;
2026-07-20 16:05:17 +00:00
};