decord/source/modules/threads/ThreadBrowserHooks.tsx
2026-07-25 08:10:48 +00:00

171 lines
7.7 KiB
TypeScript

// Module ID: 11799
// Function ID: 91574
// Name: useActiveThreadIds
// Dependencies: [57, 31, 11800, 1348, 3759, 4143, 5041, 6025, 3761, 482, 6040, 566, 22, 1327, 21, 6024, 9067, 2]
// Exports: useActiveGuildThreads, useActiveThreads, useArchivedThreads, useTrackThreadBrowserTab
// Module 11799 (useActiveThreadIds)
import _slicedToArray from "_slicedToArray";
import result from "result";
import { useShouldShowResolvedFlagsForChannel as closure_5 } from "useReportToModChannelFiltersStore";
import _isNativeReflectConstruct from "_isNativeReflectConstruct";
import closure_7 from "_isNativeReflectConstruct";
import closure_8 from "_isNativeReflectConstruct";
import closure_9 from "_isNativeReflectConstruct";
import closure_10 from "_isNativeReflectConstruct";
import closure_11 from "_isNativeReflectConstruct";
import { Permissions } from "sum";
let require = arg1;
function useActiveThreadIds(channel) {
const _require = channel;
const items = [closure_7, closure_9, _isNativeReflectConstruct];
const items1 = [, ];
({ guild_id: arr2[0], id: arr2[1] } = channel);
const stateFromStoresArray = _require(566).useStateFromStoresArray(items, () => {
const tmp = stateFromStoresArray(outer1_2[12]);
const values = stateFromStoresArray(outer1_2[12])(outer1_9.getThreadsForParent(channel.guild_id, channel.id)).values();
const mapped = values.map((id) => outer2_6.getChannel(id.id));
const found = mapped.filter(channel(outer1_2[13]).isNotNullish);
const found1 = found.filter((channel) => outer2_7.can(outer2_12.VIEW_CHANNEL, channel));
const tmpResult = stateFromStoresArray(outer1_2[12])(outer1_9.getThreadsForParent(channel.guild_id, channel.id));
return found1.map((id) => id.id).value();
}, items1);
const items2 = [stateFromStoresArray];
return React.useMemo(() => {
const sorted = stateFromStoresArray(outer1_2[12])(stateFromStoresArray).sort((arg0, arg1) => {
const obj = stateFromStoresArray(outer2_2[14]);
return obj.compare(outer2_8.lastMessageId(arg0), outer2_8.lastMessageId(arg1));
});
let obj = stateFromStoresArray(outer1_2[12])(stateFromStoresArray);
return sorted.reverse().value();
}, items2);
}
let result = require("useReportToModChannelFiltersStore").fileFinishedImporting("modules/threads/ThreadBrowserHooks.tsx");
export const useTrackThreadBrowserTab = function useTrackThreadBrowserTab() {
const effect = React.useEffect(() => {
const result = outer1_0(outer1_2[10]).trackThreadBrowserTab();
}, []);
};
export { useActiveThreadIds };
export const useActiveThreads = function useActiveThreads(channel) {
const tmp = useActiveThreadIds(channel);
const require = tmp;
let obj = require(566) /* initialize */;
const items = [closure_11];
const items1 = [tmp];
const tmp2 = callback(obj.useStateFromStores(items, () => outer1_1(outer1_2[12]).partition(closure_0, (arg0) => outer2_11.hasJoined(arg0)), items1, require(566) /* initialize */.statesWillNeverBeEqual), 2);
obj = { joinedThreadIds: tmp2[0], unjoinedThreadIds: tmp2[1] };
return obj;
};
export const useActiveGuildThreads = function useActiveGuildThreads(arg0) {
const _require = arg0;
const items = [closure_7, closure_9, _isNativeReflectConstruct];
const items1 = [arg0];
const stateFromStoresArray = _require(566).useStateFromStoresArray(items, () => {
const tmp = stateFromStoresArray(outer1_2[12]);
const values = stateFromStoresArray(outer1_2[12])(outer1_9.getThreadsForGuild(callback)).values();
const mapped = values.map((arg0) => stateFromStoresArray(outer2_2[12]).values(arg0));
const tmpResult = stateFromStoresArray(outer1_2[12])(outer1_9.getThreadsForGuild(callback));
const mapped1 = mapped.flatten().map((id) => outer2_6.getChannel(id.id));
const found = mapped1.filter(callback(outer1_2[13]).isNotNullish);
const found1 = found.filter((channel) => outer2_7.can(outer2_12.VIEW_CHANNEL, channel));
const flattenResult = mapped.flatten();
return found1.map((id) => id.id).value();
}, items1);
const items2 = [stateFromStoresArray];
return React.useMemo(() => {
const sorted = stateFromStoresArray(outer1_2[12])(stateFromStoresArray).sort((arg0, arg1) => {
const obj = stateFromStoresArray(outer2_2[14]);
return obj.compare(outer2_8.lastMessageId(arg0), outer2_8.lastMessageId(arg1));
});
let obj = stateFromStoresArray(outer1_2[12])(stateFromStoresArray);
return sorted.reverse().value();
}, items2);
};
export const useArchivedThreads = function useArchivedThreads(channel, LATEST_ACTIVITY, canLoadMore, MATCH_SOME) {
let loading;
let nextOffset;
const _require = channel;
let closure_1 = LATEST_ACTIVITY;
const dependencyMap = canLoadMore;
let _slicedToArray = MATCH_SOME;
const result = channel.isModeratorReportChannel();
showResolvedFlags = showResolvedFlags(channel.id).showResolvedFlags;
let obj = _require(566);
const items = [closure_10];
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) }));
({ loading, nextOffset } = stateFromStoresObject);
const isInitialLoad = stateFromStoresObject.isInitialLoad;
const items1 = [channel, LATEST_ACTIVITY, canLoadMore, MATCH_SOME, nextOffset, showResolvedFlags, result];
const callback = result.useCallback(() => {
let tmp = !isInitialLoad.can(outer1_12.READ_MESSAGE_HISTORY, closure_0);
if (!tmp) {
let tmp2 = result;
if (result) {
tmp2 = !showResolvedFlags;
}
tmp = tmp2;
}
if (!tmp) {
let obj = LATEST_ACTIVITY(6024);
obj = {};
({ guild_id: obj2.guildId, id: obj2.channelId } = closure_0);
obj.sortOrder = LATEST_ACTIVITY;
obj.tagFilter = dependencyMap;
obj.tagSetting = _slicedToArray;
obj.offset = nextOffset;
const archivedThreads = obj.loadArchivedThreads(obj);
}
}, items1);
let closure_9 = result.useRef(callback);
const effect = result.useEffect(() => {
closure_9.current = callback;
});
const items2 = [channel.id, LATEST_ACTIVITY, canLoadMore, isInitialLoad, showResolvedFlags];
const effect1 = result.useEffect(() => {
if (isInitialLoad) {
ref.current();
}
}, items2);
const items3 = [channel.id, showResolvedFlags];
const effect2 = result.useEffect(() => {
LATEST_ACTIVITY(9067).resort(user.id);
}, items3);
obj = {};
const items4 = [closure_10, nextOffset, isInitialLoad];
obj.threadIds = _require(566).useStateFromStoresArray(items4, () => {
const tmp = LATEST_ACTIVITY(22);
const tmpResult = LATEST_ACTIVITY(22)(outer1_10.getThreads(user.id, LATEST_ACTIVITY, dependencyMap, _slicedToArray));
return LATEST_ACTIVITY(22)(outer1_10.getThreads(user.id, LATEST_ACTIVITY, dependencyMap, _slicedToArray)).filter((channelId) => {
if (outer1_4) {
if (!outer1_5) {
return false;
}
}
const channel = nextOffset.getChannel(channelId);
let canResult = null != channel;
if (canResult) {
canResult = isInitialLoad.can(outer2_12.VIEW_CHANNEL, channel);
}
if (canResult) {
canResult = !channel.isMediaThread();
}
return canResult;
}).value();
});
obj.canLoadMore = stateFromStoresObject.canLoadMore;
if (!loading) {
loading = isInitialLoad;
}
if (loading) {
loading = showResolvedFlags;
}
if (loading) {
loading = isInitialLoad.can(Permissions.READ_MESSAGE_HISTORY, channel);
}
obj.loading = loading;
obj.loadMore = callback;
return obj;
};