// Metro module 15795 (f15796). import { memo, useCallback, useRef, useEffect } from "react"; import { Pressable, View } from "react-native"; import ChannelStore from "../../../stores/ChannelStore"; import ReadStateStore from "../../../stores/ReadStateStore"; import UserStore from "../../../stores/UserStore"; import { ChannelTypes } from "../../../Constants"; import { createStyles } from "../../../design/components/Styles/native/createStyles"; import Module712 from "../../../_bundle/Module712"; import { transitionToGuild } from "../../routing/transitionToGuild.native"; import SimpleGuild from "./shared/SimpleGuild"; import { useStateFromStores } from "../../../_bundle/Module589"; import { Avatar, AvatarSizes } from "../../../design/void/native"; import GroupDMAvatar from "../../group_dm/native/GroupDMAvatar"; import FastImage from "../../../components_native/common/FastImage"; import { getChannelIconSource } from "../../channel/getChannelIcon"; import ChannelActionCreators from "../../../actions/ChannelActionCreators"; import { transitionToChannel } from "../../routing/transitionToChannel"; import MaskedBadge from "../../main_tabs_v2/native/shared_components/MaskedBadge"; import { useCategoryStyles, renderCategoryItem } from "../../channel_list_v2/native/items/RedesignCategory"; import MobileVisualRefreshExperiment from "../../themes/experiments/MobileVisualRefreshExperiment"; import useWindowDimensions_native from "../../screen/useWindowDimensions.native"; import isGuildSelectable from "./isGuildSelectable"; import { intl, t } from "../../../intl/index.native"; import { AnimatedFastList } from "../../../lib/native/FastList"; let useStyles, GuildItemInner, PrivateChannelItemInner, renderHistorySection; const HistorySeparator = function HistorySeparator() { const styles = useStyles(); return ; }; renderHistorySection = function renderHistorySection() { return ; }; useStyles = createStyles({ listWrapper: { marginTop: 8 }, list: { marginBottom: 4, flexShrink: 0 }, maskStrokeStyle: { backgroundColor: Module712.colors.BACKGROUND_BASE_LOW }, privateChannelWrapper: { position: "relative", paddingVertical: 2, justifyContent: "center", alignItems: "center" }, privateChannelIcon: { width: 48, height: 48, borderRadius: 24, overflow: "hidden" }, badgeWrapper: { position: "absolute", top: "50%", left: "50%", marginLeft: 6, marginTop: 6 }, guildWrapper: { paddingVertical: 2, justifyContent: "center", alignItems: "center" }, guildHistorySeparatorWrapper: { flex: 1, justifyContent: "center", alignItems: "center" }, guildHistorySeparator: { width: 2, height: 32, borderRadius: Module712.radii.round, backgroundColor: Module712.colors.BACKGROUND_MOD_STRONG } }); GuildItemInner = memo(function GuildItemInner(props) { const { guildId, selected, onGuildSelect } = props; const styles = useStyles(); return { onGuildSelect(guildId); }, [guildId, onGuildSelect])} onLongPress={useCallback(() => { transitionToGuild(guildId); }, [guildId])} backgroundColor={styles.maskStrokeStyle.backgroundColor} /> ; }); PrivateChannelItemInner = memo(function PrivateChannelItemInner(props) { let stateFromStores2; const channelId = props.channelId; stateFromStores2 = void 0; const styles = useStyles(); const stateFromStores = useStateFromStores([ChannelStore], () => ChannelStore.getChannel(channelId)); stateFromStores2 = useStateFromStores([UserStore], () => (stateFromStores == null ? void 0 : stateFromStores.isPrivate()) ? UserStore.getUser(stateFromStores.getRecipientId()) : void 0); const stateFromStores3 = useStateFromStores([ReadStateStore], () => stateFromStores != null ? ReadStateStore.getMentionCount(stateFromStores.id) : 0); const r43 = stateFromStores?.type === ChannelTypes.DM && stateFromStores2 != null ? : (stateFromStores == null ? void 0 : stateFromStores.isGroupDM()) ? : stateFromStores != null ? : void 0; const callback2 = useCallback(() => { L5: { if (stateFromStores != null) { if (stateFromStores.type === ChannelTypes.DM && stateFromStores2 != null) { ChannelActionCreators.openPrivateChannel({ recipientIds: [stateFromStores2.id] }); break L5; } transitionToChannel(stateFromStores.id, { navigationReplace: true }); } } }, [stateFromStores2, stateFromStores]); return stateFromStores != null ? {r43} {stateFromStores3 > 0 && } : null; }); const r68 = memo(function LaunchPadUnreadServers(props) { let r67; let ref2; const { selectedGuildId, setSelectedGuild, unreadPrivateChannelIds, unreadGuilds, guildHistory, visible } = props; ref2 = void 0; const styles = useStyles(); const styles2 = useCategoryStyles(); const isRefreshEnabled = MobileVisualRefreshExperiment("LaunchPadUnreadServers"); const width = useWindowDimensions_native().width; const ref = useRef(-1); const callback = useCallback((a0) => { if (!(ref.current >= 0) && isGuildSelectable(a0)) { setSelectedGuild(a0 !== selectedGuildId ? a0 : void 0); ref.current = setTimeout(() => { clearTimeout(ref.current); ref.current = -1; }, 400); return void 0; } clearTimeout(ref.current); ref.current = -1; transitionToGuild(a0); }, [setSelectedGuild, selectedGuildId]); useEffect(() => () => clearTimeout(ref.current), []); ref2 = useRef(null); useEffect(() => { if (visible) { const current = ref2.current; if (current != null) { current.scrollToTop(false); } } }, [visible]); const callback2 = useCallback((a0, a1) => { if (a0 === 0) { const channelId2 = unreadPrivateChannelIds[a1]; return channelId2 != null && ; } if (a0 >= 1) { const guildId2 = a0 === 1 ? unreadGuilds[a1] : guildHistory[a1]; return guildId2 != null && ; } return null; }, [unreadGuilds, unreadPrivateChannelIds, selectedGuildId, callback, guildHistory]); const callback3 = useCallback((a0) => { let r0; L5: { r0 = 0; if (a0 === 2) { const r3 = guildHistory.length > 0; r0 = 0; if (r3) { if (!(unreadPrivateChannelIds.length > 0)) { const r12 = unreadGuilds.length > 0; r0 = 0; if (!r12) { break L5; } } r0 = 10; } } } return r0; }, [unreadGuilds.length, unreadPrivateChannelIds.length, guildHistory.length]); const r2 = unreadGuilds.length > 0 || unreadPrivateChannelIds.length > 0; L8: { if (!r2) { const r4 = guildHistory.length > 0; r67 = null; if (!r4) { break L8; } } r67 = {renderCategoryItem({ name: r2 ? intl.string(t.xSY9BH) : intl.string(t.kCt2zG), styles: styles2, isRefreshEnabled })} ; } return r67; }); export default r68;