decord/source/modules/threads/ThreadBrowserHooks.tsx

193 lines
9.1 KiB
TypeScript
Raw Normal View History

2026-08-06 08:05:19 +00:00
// Module ID: 12034
// Function ID: 12035
2026-07-29 08:29:29 +00:00
// Name: useTrackThreadBrowserTab
2026-08-06 08:05:19 +00:00
// Dependencies: [32, 19, 12035, 1372, 3912, 4297, 5207, 7146, 3914, 505, 7161, 589, 12, 1351, 11, 7145, 8329, 2]
2026-07-29 08:29:29 +00:00
// Exports: useActiveGuildThreads, useActiveThreadIds, useActiveThreads, useArchivedThreads, useTrackThreadBrowserTab
2026-07-20 16:05:17 +00:00
2026-08-06 08:05:19 +00:00
// Module 12034 (useTrackThreadBrowserTab)
2026-07-23 10:11:24 +00:00
import _slicedToArray from "_slicedToArray";
2026-07-29 08:29:29 +00:00
import noop from "noop";
2026-07-23 10:11:24 +00:00
import { useShouldShowResolvedFlagsForChannel as closure_5 } from "useReportToModChannelFiltersStore";
2026-07-29 08:29:29 +00:00
import ensureGuildLoaded from "ensureGuildLoaded";
import getUncachedChannelPermissions from "getUncachedChannelPermissions";
import generateOldThreadCutoff from "generateOldThreadCutoff";
import handleThreadCreateOrUpdate from "handleThreadCreateOrUpdate";
import listKey from "listKey";
import storeThread from "storeThread";
2026-07-23 10:11:24 +00:00
import { Permissions } from "sum";
2026-07-29 08:29:29 +00:00
const require = arg1;
let result = require("useReportToModChannelFiltersStore").fileFinishedImporting("modules/threads/ThreadBrowserHooks.tsx");
export const useTrackThreadBrowserTab = function useTrackThreadBrowserTab() {
const effect = React.useEffect(() => {
const result = callback(table[10]).trackThreadBrowserTab();
}, []);
};
export const useActiveThreadIds = function useActiveThreadIds(arg0) {
const _require = arg0;
const items = [getUncachedChannelPermissions, handleThreadCreateOrUpdate, ensureGuildLoaded];
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(589).useStateFromStoresArray(items, () => {
2026-07-23 10:11:24 +00:00
const tmp = stateFromStoresArray(outer1_2[12]);
2026-07-29 08:29:29 +00:00
const values = stateFromStoresArray(outer1_2[12])(outer1_9.getThreadsForParent(memo.guild_id, memo.id)).values();
const mapped = values.map((id) => channel.getChannel(id.id));
const found = mapped.filter(memo(outer1_2[13]).isNotNullish);
const found1 = found.filter((arg0) => getUncachedChannelPermissions.can(constants.VIEW_CHANNEL, arg0));
const tmpResult = stateFromStoresArray(outer1_2[12])(outer1_9.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 React.useMemo(() => {
2026-07-23 10:11:24 +00:00
const sorted = stateFromStoresArray(outer1_2[12])(stateFromStoresArray).sort((arg0, arg1) => {
2026-07-29 08:29:29 +00:00
const obj = callback(table[14]);
return obj.compare(generateOldThreadCutoff.lastMessageId(arg0), generateOldThreadCutoff.lastMessageId(arg1));
2026-07-20 16:05:17 +00:00
});
2026-07-23 10:11:24 +00:00
let obj = stateFromStoresArray(outer1_2[12])(stateFromStoresArray);
2026-07-20 16:05:17 +00:00
return sorted.reverse().value();
}, items2);
};
export const useActiveThreads = function useActiveThreads(channel) {
2026-07-29 08:29:29 +00:00
let memo = channel;
let obj = memo(589);
const items = [getUncachedChannelPermissions, handleThreadCreateOrUpdate, ensureGuildLoaded];
const items1 = [, ];
({ guild_id: arr2[0], id: arr2[1] } = channel);
const stateFromStoresArray = obj.useStateFromStoresArray(items, () => {
const tmp = stateFromStoresArray(outer1_2[12]);
const values = stateFromStoresArray(outer1_2[12])(outer1_9.getThreadsForParent(memo.guild_id, memo.id)).values();
const mapped = values.map((id) => channel.getChannel(id.id));
const found = mapped.filter(memo(outer1_2[13]).isNotNullish);
const found1 = found.filter((arg0) => getUncachedChannelPermissions.can(constants.VIEW_CHANNEL, arg0));
const tmpResult = stateFromStoresArray(outer1_2[12])(outer1_9.getThreadsForParent(memo.guild_id, memo.id));
return found1.map((id) => id.id).value();
}, items1);
const items2 = [stateFromStoresArray];
memo = React.useMemo(() => {
const sorted = stateFromStoresArray(outer1_2[12])(stateFromStoresArray).sort((arg0, arg1) => {
const obj = callback(table[14]);
return obj.compare(generateOldThreadCutoff.lastMessageId(arg0), generateOldThreadCutoff.lastMessageId(arg1));
});
let obj = stateFromStoresArray(outer1_2[12])(stateFromStoresArray);
return sorted.reverse().value();
}, items2);
const items3 = [storeThread];
const items4 = [memo];
const tmp3 = callback(memo(589).useStateFromStores(items3, () => stateFromStoresArray(outer1_2[12]).partition(memo, (id) => storeThread.hasJoined(id)), items4, memo(589).statesWillNeverBeEqual), 2);
obj = { joinedThreadIds: tmp3[0], unjoinedThreadIds: tmp3[1] };
2026-07-20 16:05:17 +00:00
return obj;
};
export const useActiveGuildThreads = function useActiveGuildThreads(arg0) {
2026-07-23 10:11:24 +00:00
const _require = arg0;
2026-07-29 08:29:29 +00:00
const items = [getUncachedChannelPermissions, handleThreadCreateOrUpdate, ensureGuildLoaded];
2026-07-20 16:05:17 +00:00
const items1 = [arg0];
2026-07-29 08:29:29 +00:00
const stateFromStoresArray = _require(589).useStateFromStoresArray(items, () => {
2026-07-23 10:11:24 +00:00
const tmp = stateFromStoresArray(outer1_2[12]);
const values = stateFromStoresArray(outer1_2[12])(outer1_9.getThreadsForGuild(callback)).values();
2026-07-29 08:29:29 +00:00
const mapped = values.map((arg0) => callback(table[12]).values(arg0));
2026-07-23 10:11:24 +00:00
const tmpResult = stateFromStoresArray(outer1_2[12])(outer1_9.getThreadsForGuild(callback));
2026-07-29 08:29:29 +00:00
const mapped1 = mapped.flatten().map((id) => channel.getChannel(id.id));
2026-07-23 10:11:24 +00:00
const found = mapped1.filter(callback(outer1_2[13]).isNotNullish);
2026-07-29 08:29:29 +00:00
const found1 = found.filter((arg0) => getUncachedChannelPermissions.can(constants.VIEW_CHANNEL, arg0));
2026-07-20 16:05:17 +00:00
const flattenResult = mapped.flatten();
return found1.map((id) => id.id).value();
}, items1);
const items2 = [stateFromStoresArray];
return React.useMemo(() => {
2026-07-23 10:11:24 +00:00
const sorted = stateFromStoresArray(outer1_2[12])(stateFromStoresArray).sort((arg0, arg1) => {
2026-07-29 08:29:29 +00:00
const obj = callback(table[14]);
return obj.compare(generateOldThreadCutoff.lastMessageId(arg0), generateOldThreadCutoff.lastMessageId(arg1));
2026-07-20 16:05:17 +00:00
});
2026-07-23 10:11:24 +00:00
let obj = stateFromStoresArray(outer1_2[12])(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) {
2026-07-20 16:05:17 +00:00
let loading;
let nextOffset;
2026-07-23 10:11:24 +00:00
const _require = channel;
let closure_1 = LATEST_ACTIVITY;
2026-07-28 08:39:19 +00:00
const dependencyMap = loadMore;
2026-07-23 10:11:24 +00:00
let _slicedToArray = MATCH_SOME;
2026-07-20 16:05:17 +00:00
const result = channel.isModeratorReportChannel();
2026-07-29 08:29:29 +00:00
const React = result;
2026-07-23 10:11:24 +00:00
showResolvedFlags = showResolvedFlags(channel.id).showResolvedFlags;
2026-07-29 08:29:29 +00:00
let obj = _require(589);
const items = [listKey];
2026-07-23 10:11:24 +00:00
const stateFromStoresObject = obj.useStateFromStoresObject(items, () => ({ loading: outer1_10.isLoading(user.id, closure_1, closure_2, _slicedToArray), isInitialLoad: outer1_10.getIsInitialLoad(user.id, closure_1, closure_2, _slicedToArray), canLoadMore: outer1_10.getCanLoadMore(user.id, closure_1, closure_2, _slicedToArray), nextOffset: outer1_10.getNextOffset(user.id, closure_1, closure_2, _slicedToArray) }));
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];
2026-07-29 08:29:29 +00:00
const callback = React.useCallback(() => {
const canResult = isInitialLoad.can(outer1_12.READ_MESSAGE_HISTORY, closure_0);
let tmp3 = !canResult;
if (canResult) {
let tmp4 = noop;
if (noop) {
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) {
2026-07-28 08:39:19 +00:00
let obj = LATEST_ACTIVITY(loadMore[15]);
2026-07-29 08:29:29 +00:00
obj = { guildId: null, channelId: null, sortOrder: null, tagFilter: null, tagSetting: null, offset: null };
({ guild_id: obj2[0], id: obj2[1] } = closure_0);
obj[2] = LATEST_ACTIVITY;
obj[3] = loadMore;
obj[4] = _slicedToArray;
obj[5] = nextOffset;
2026-07-20 16:05:17 +00:00
const archivedThreads = obj.loadArchivedThreads(obj);
}
}, items1);
2026-07-29 08:29:29 +00:00
let handleThreadCreateOrUpdate = React.useRef(callback);
const effect = React.useEffect(() => {
handleThreadCreateOrUpdate.current = callback;
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];
2026-07-29 08:29:29 +00:00
const effect1 = React.useEffect(() => {
2026-07-20 16:05:17 +00:00
if (isInitialLoad) {
ref.current();
}
}, items2);
const items3 = [channel.id, showResolvedFlags];
2026-07-29 08:29:29 +00:00
const effect2 = React.useEffect(() => {
2026-07-28 08:39:19 +00:00
LATEST_ACTIVITY(loadMore[16]).resort(user.id);
2026-07-20 16:05:17 +00:00
}, items3);
2026-07-29 08:29:29 +00:00
obj = { threadIds: null, canLoadMore: null, loading: null, loadMore: null };
const items4 = [listKey, nextOffset, isInitialLoad];
obj[0] = _require(589).useStateFromStoresArray(items4, () => {
2026-07-28 08:39:19 +00:00
const tmp = LATEST_ACTIVITY(loadMore[12]);
const tmpResult = LATEST_ACTIVITY(loadMore[12])(outer1_10.getThreads(user.id, LATEST_ACTIVITY, loadMore, _slicedToArray));
2026-07-29 08:29:29 +00:00
return LATEST_ACTIVITY(loadMore[12])(outer1_10.getThreads(user.id, LATEST_ACTIVITY, loadMore, _slicedToArray)).filter((arg0) => {
if (noop) {
if (!closure_5) {
2026-07-20 16:05:17 +00:00
return false;
}
}
2026-07-29 08:29:29 +00:00
const channel = outer1_6.getChannel(arg0);
2026-07-20 16:05:17 +00:00
let canResult = null != channel;
if (canResult) {
2026-07-29 08:29:29 +00:00
canResult = outer1_7.can(outer1_12.VIEW_CHANNEL, channel);
2026-07-20 16:05:17 +00:00
}
if (canResult) {
canResult = !channel.isMediaThread();
}
return canResult;
}).value();
});
2026-07-29 08:29:29 +00:00
obj[1] = 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
}
2026-07-29 08:29:29 +00:00
obj[2] = loading;
obj[3] = callback;
2026-07-20 16:05:17 +00:00
return obj;
};