decord/source/modules/conversations/components/native/useConversationsHeaderButton.tsx

134 lines
5.1 KiB
TypeScript
Raw Normal View History

2026-07-25 08:10:48 +00:00
// Module ID: 9199
// Function ID: 72104
2026-07-20 16:05:17 +00:00
// Name: useConversationsHeaderButton
2026-07-25 08:10:48 +00:00
// Dependencies: [5, 31, 5830, 5832, 9200, 669, 9201, 9202, 566, 9213, 9204, 9215, 1212, 2]
2026-07-20 16:05:17 +00:00
// Exports: useConversationsHeaderButton
2026-07-25 08:10:48 +00:00
// Module 9199 (useConversationsHeaderButton)
2026-07-23 10:11:24 +00:00
import set from "set";
import result from "result";
import _isNativeReflectConstruct from "_isNativeReflectConstruct";
import CONVERSATION_COLORS from "CONVERSATION_COLORS";
let closure_5;
let closure_6;
let closure_7;
const require = arg1;
({ CONVERSATION_HAS_MORE_EXPIRATION_MS: closure_5, MOBILE_FETCH_LIMIT: closure_6, MOBILE_PREVIEW_MESSAGE_COUNT: closure_7 } = CONVERSATION_COLORS);
let result = require("_isNativeReflectConstruct").fileFinishedImporting("modules/conversations/components/native/useConversationsHeaderButton.tsx");
2026-07-20 16:05:17 +00:00
export const useConversationsHeaderButton = function useConversationsHeaderButton(channel) {
2026-07-23 10:11:24 +00:00
const _require = channel;
isTopicalNavEnabled = _require(isTopicalNavEnabled[4]).useIsTopicalNavEnabled(channel.guild_id, "channel_header");
2026-07-20 16:05:17 +00:00
if (isTopicalNavEnabled) {
2026-07-23 10:11:24 +00:00
isTopicalNavEnabled = channel.type === _require(isTopicalNavEnabled[5]).ChannelTypes.GUILD_TEXT;
2026-07-20 16:05:17 +00:00
}
2026-07-23 10:11:24 +00:00
let obj = _require(isTopicalNavEnabled[4]);
2026-07-20 16:05:17 +00:00
const items = [channel.id];
2026-07-23 10:11:24 +00:00
const conversationBackoffRef = _require(isTopicalNavEnabled[6]).useConversationBackoffRef(items);
2026-07-20 16:05:17 +00:00
const items1 = [, , , ];
({ id: arr2[0], guild_id: arr2[1] } = channel);
items1[2] = isTopicalNavEnabled;
items1[3] = conversationBackoffRef;
2026-07-23 10:11:24 +00:00
callback = callback.useCallback((() => {
2026-07-20 16:05:17 +00:00
function fetchPage() {
return callback(...arguments);
}
// CreateGeneratorClosureLongIndex (0x67)
let closure_0 = conversationBackoffRef(tmp);
return fetchPage;
2026-07-23 10:11:24 +00:00
})(), items1);
2026-07-20 16:05:17 +00:00
const items2 = [, , , ];
({ id: arr3[0], guild_id: arr3[1] } = channel);
items2[2] = isTopicalNavEnabled;
items2[3] = callback;
2026-07-23 10:11:24 +00:00
const effect = callback.useEffect(() => {
2026-07-20 16:05:17 +00:00
let hasChannelDataResult = !isTopicalNavEnabled;
if (!hasChannelDataResult) {
2026-07-23 10:11:24 +00:00
hasChannelDataResult = stateFromStores.hasChannelData(channel.id);
2026-07-20 16:05:17 +00:00
}
if (!hasChannelDataResult) {
2026-07-23 10:11:24 +00:00
hasChannelDataResult = stateFromStores.isPendingFetch(channel.id);
2026-07-20 16:05:17 +00:00
}
if (!hasChannelDataResult) {
callback();
}
}, items2);
2026-07-23 10:11:24 +00:00
const obj2 = _require(isTopicalNavEnabled[6]);
const items3 = [stateFromStores];
2026-07-20 16:05:17 +00:00
const items4 = [channel.id];
2026-07-23 10:11:24 +00:00
stateFromStores = _require(isTopicalNavEnabled[8]).useStateFromStores(items3, () => stateFromStores.getEdgeMarker(channel.id, "after"), items4);
2026-07-20 16:05:17 +00:00
const items5 = [stateFromStores, isTopicalNavEnabled, callback];
2026-07-23 10:11:24 +00:00
const effect1 = callback.useEffect(() => {
2026-07-20 16:05:17 +00:00
if (isTopicalNavEnabled) {
if (null != stateFromStores) {
const _Date = Date;
const sum = stateFromStores + stateFromStores1;
const diff = sum - Date.now();
if (diff > 0) {
const _setTimeout = setTimeout;
const timeout = setTimeout(callback, diff);
return () => clearTimeout(closure_0);
} else {
callback();
}
}
}
}, items5);
2026-07-23 10:11:24 +00:00
const obj3 = _require(isTopicalNavEnabled[8]);
const items6 = [stateFromStores];
2026-07-20 16:05:17 +00:00
const items7 = [channel.id];
2026-07-23 10:11:24 +00:00
const stateFromStores1 = _require(isTopicalNavEnabled[8]).useStateFromStores(items6, () => {
const channelConversations = stateFromStores.getChannelConversations(channel.id);
2026-07-20 16:05:17 +00:00
let length;
if (null != channelConversations) {
length = channelConversations.length;
}
let num = 0;
if (null != length) {
num = length;
}
return num;
}, items7);
if (isTopicalNavEnabled) {
isTopicalNavEnabled = stateFromStores1 > 0;
}
2026-07-23 10:11:24 +00:00
let closure_7 = callback.useRef(null);
2026-07-20 16:05:17 +00:00
const items8 = [isTopicalNavEnabled, stateFromStores1, channel.id];
2026-07-23 10:11:24 +00:00
const effect2 = callback.useEffect(() => {
2026-07-20 16:05:17 +00:00
let tmp = isTopicalNavEnabled;
if (isTopicalNavEnabled) {
2026-07-23 10:11:24 +00:00
tmp = ref.current !== channel.id;
2026-07-20 16:05:17 +00:00
}
if (tmp) {
2026-07-23 10:11:24 +00:00
ref.current = channel.id;
const result = channel(isTopicalNavEnabled[7]).trackTopicalNavigationEntrypointImpression(channel.id, stateFromStores1);
const obj = channel(isTopicalNavEnabled[7]);
2026-07-20 16:05:17 +00:00
}
}, items8);
const items9 = [isTopicalNavEnabled, conversationBackoffRef, , ];
({ id: arr10[2], guild_id: arr10[3] } = channel);
2026-07-23 10:11:24 +00:00
return callback.useMemo(() => {
2026-07-20 16:05:17 +00:00
let tmp = null;
if (isTopicalNavEnabled) {
2026-07-23 10:11:24 +00:00
let obj = {
2026-07-20 16:05:17 +00:00
source: null,
2026-07-23 10:11:24 +00:00
IconComponent: channel(isTopicalNavEnabled[9]).PaperIcon,
2026-07-20 16:05:17 +00:00
onPress() {
2026-07-23 10:11:24 +00:00
const current = outer1_2.current;
2026-07-20 16:05:17 +00:00
current.cancel();
2026-07-23 10:11:24 +00:00
const ConversationsAnalytics = callback(isTopicalNavEnabled[10]).ConversationsAnalytics;
let obj = { channelId: outer1_0.id, conversationIds: [], isFocusMode: false };
2026-07-20 16:05:17 +00:00
const result = ConversationsAnalytics.trackTopicsUnitImpression(obj);
2026-07-23 10:11:24 +00:00
obj = { channelId: outer1_0.id, guildId: outer1_0.guild_id };
const result1 = callback(isTopicalNavEnabled[11]).openConversationNavigator(obj);
2026-07-20 16:05:17 +00:00
}
};
2026-07-23 10:11:24 +00:00
const intl = channel(isTopicalNavEnabled[12]).intl;
obj.accessibilityLabel = intl.string(channel(isTopicalNavEnabled[12]).t.u54FxB);
2026-07-20 16:05:17 +00:00
tmp = obj;
}
return tmp;
}, items9);
};