// Metro module 15320 (f15321). import * as Module19 from "react"; import { useMemo, useLayoutEffect, useEffect, useRef, useCallback } from "react"; import { RefreshControl, View } from "react-native"; import AccessibilityStore from "../../a11y/AccessibilityStore"; import AuthenticationStore from "../../../stores/AuthenticationStore"; import GuildStore from "../../../stores/GuildStore"; import ICYMIFiltersStore from "../ICYMIFiltersStore"; import ICYMIStore from "../ICYMIStore"; import { NUM_GUILDS_EXTENDED_ONBOARDING } from "../ICYMIConstants"; import { ContentDismissActionType } from "../../dismissible_content/DismissibleContentConstants"; import { createStyles } from "../../../design/components/Styles/native/createStyles"; import Module712 from "../../../_bundle/Module712"; import { createICYMIStyles } from "./createICYMIStyles"; import { IconButton } from "../../../design/components/Button/native/IconButton.native"; import { FiltersHorizontalIcon } from "../../../design/components/Icon/native/redesign/generated/FiltersHorizontalIcon"; import ICYMIActionCreators from "../ICYMIActionCreators"; import ActionSheetActionCreators from "../../action_sheet/native/ActionSheetActionCreators"; import { CircleInformationIcon } from "../../../design/components/Icon/native/redesign/generated/CircleInformationIcon"; import { pushICYMIInfoModal } from "./NativeICYMIUtils"; import { Text } from "../../../design/components/Text/native/Text"; import { intl, t } from "../../../intl/index.native"; import useIsWindowLarge from "../../screen/native/useIsWindowLarge"; import { SafeAreaPaddingView } from "../../../components_native/common/SafeAreaView"; import ThemedGradient from "../../client_themes/native/ThemedGradient"; import { OverlayOpacity } from "../../client_themes/native/ClientThemesUtils"; import * as _Pressables from "../../../design/void/Pressables/native/Pressables"; import { goBack } from "../../main_tabs_v2/native/tabs/notifications/Notifications"; import { LeftBackIconWithBadge } from "../../main_tabs_v2/native/shared_components/BackIconWithBadge"; import { XSmallIcon } from "../../../design/components/Icon/native/redesign/generated/XSmallIcon"; import { hydrateNextPage, itemToType } from "../ICYMIUtils"; import useWindowDimensions_native from "../../screen/useWindowDimensions.native"; import useSafeAreaInsets_native from "../../safe_area/useSafeAreaInsets.native"; import { useIsFocused, useScrollToTop } from "../../../_bundle/Module1481"; import { trackAppUIViewed } from "../../tti_analytics/native/TTIAnalyticsUtils"; import { useStateFromStores } from "../../../_bundle/Module589"; import useICYMITabBadge from "../useICYMITabBadge"; import { useSharedICYMILogic } from "../useSharedICYMILogic"; import { useICYMIEmptyLoadingAnalytics } from "../useICYMIEmptyLoadingAnalytics"; import { useGetDismissibleContent } from "../../dismissible_content/useGetDismissibleContent"; import { DismissibleContent } from "../../../_bundle/Module1358"; import { useNavigation } from "../../../design/components/Navigator/native/useNavigation.native"; import { GravityICYMIDoubleTapBehavior } from "../ICYMITypes"; import { showForLaterModal } from "../../saved_messages/native/showForLaterModal"; import { SavedMessageSortTypes } from "../../saved_messages/SavedMessagesTypes"; import { useMobileQuestDockHeight } from "../../quests/native/QuestHooks.native"; import { ChannelTypes } from "../../../_bundle/Module692"; import AnnouncementMessageRow from "./AnnouncementMessageRow"; import ICYMIMessageRow from "./ICYMIMessageRow"; import ContentInventoryEntryRow from "./ContentInventoryEntryRow"; import { ICYMILoading } from "./ICYMILoading"; import { ICYMIBottomLoading } from "./ICYMIBottomLoading"; import CaughtUpRow from "./CaughtUpRow"; import ICYMIGuildEventRow from "./ICYMIGuildEventRow"; import { ICYMIServerRecommendationRow } from "./ICYMIServerRecommendationRow"; import ICYMIHeader from "./ICYMIHeader"; import { ICYMIForumThreadRow } from "./ICYMIForumThreadRow"; import { CardHeightMeasurer } from "./CardHeightMeasurer"; import { useClientThemesOverride } from "../../client_themes/native/ClientThemesOverrides"; import NewContentPill from "./NewContentPill"; import { FlashList } from "../../../_bundle/noop_6676"; import { isAndroid } from "../../../utils/PlatformUtils"; import { TTIFirstContentfulPaint } from "../../tti_analytics/native/TTIFirstContentfulPaint"; import useColorThemeBackground from "../../client_themes/native/useColorThemeBackground"; import AppFreezer from "../../panels/morphable/native/AppFreezer"; import { ICYMIContextProvider } from "./ICYMIContext"; import { ThemeContextProvider } from "../../../_bundle/Module3901"; let useStyles, styles, InfoButton, ICYMIHeaderTextWrapper, Component, handleEndReached, ICYMI, keyExtractor; const SettingsButton = function SettingsButton() { return } onPress={() => { ICYMIActionCreators.itemInteracted("filters_button", "filters_button", "press_info_button"); ICYMIActionCreators.feedPageActioned({ actionParameters: { actionGestureType: "press", actionTargetElement: "settings_button", actionIntentType: "open", actionDestinationType: null } }); ActionSheetActionCreators.openLazy(import("./ICYMISettingsActionSheet"), "ICYMISettingsActionSheet", {}); }} />; }; InfoButton = function InfoButton() { return } onPress={() => { ICYMIActionCreators.itemInteracted("info_button", "info_button", "press_info_button"); ICYMIActionCreators.feedPageActioned({ actionParameters: { actionGestureType: "press", actionTargetElement: "info_button", actionIntentType: "open", actionDestinationType: null } }); pushICYMIInfoModal({ extendedOnboarding: true }); }} />; }; ICYMIHeaderTextWrapper = function ICYMIHeaderTextWrapper() { return {useMemo(() => <> {intl.string(t.SY4sdZ)} {intl.string(t.Ac2OZA)} , [])} ; }; handleEndReached = function handleEndReached() { hydrateNextPage(); }; ICYMI = function ICYMI(props) { let stateFromStores, visibleItemIds, endVisible, handleOnRefresh, c21866_5, c21866_6, stateFromStores2, ref, ref2, stateFromStores3, callback; const inNestedNavigator = props.inNestedNavigator; stateFromStores = void 0; visibleItemIds = void 0; endVisible = void 0; handleOnRefresh = void 0; c21866_5 = void 0; c21866_6 = void 0; stateFromStores2 = void 0; ref = void 0; ref2 = void 0; stateFromStores3 = void 0; callback = void 0; const r17 = styles(); const windowDimensions_native = useWindowDimensions_native(); const { height, width } = windowDimensions_native; const top = useSafeAreaInsets_native().top; const isFocused = useIsFocused(); useLayoutEffect(() => { trackAppUIViewed(); }); stateFromStores = useStateFromStores([AccessibilityStore], () => AccessibilityStore.useReducedMotion); const stateFromStores4 = useStateFromStores([ICYMIStore], () => ICYMIStore.notificationItem(), []); const showDot = useICYMITabBadge().showDot; useEffect(() => { ICYMIActionCreators.setTabFocused(isFocused); }, [isFocused]); const sharedICYMILogic = useSharedICYMILogic({ showDot, notificationItem: stateFromStores4 }); const { data, loading, version } = sharedICYMILogic; visibleItemIds = sharedICYMILogic.visibleItemIds; endVisible = sharedICYMILogic.endVisible; const isRefreshing = sharedICYMILogic.isRefreshing; handleOnRefresh = sharedICYMILogic.handleOnRefresh; const { stickyHeaderIndices, viewabilityConfigCallbackPairs } = sharedICYMILogic; useICYMIEmptyLoadingAnalytics(loading, isFocused); const [r24, r87] = useGetDismissibleContent([DismissibleContent.ICYMI_ALPHA_UPSELL]); c21866_5 = r24; c21866_6 = r87; stateFromStores2 = useStateFromStores([GuildStore], () => GuildStore.getGuildCount()); useEffect(() => { if (c21866_5 != null) { pushICYMIInfoModal({ extendedOnboarding: stateFromStores2 <= NUM_GUILDS_EXTENDED_ONBOARDING }); c21866_6(ContentDismissActionType.USER_DISMISS); } }, [r24, r87, stateFromStores2]); useEffect(() => { let r6 = endVisible; if (endVisible) { r6 = ICYMIStore.hasOpenedEnoughTimes(); } if (r6) { ActionSheetActionCreators.openLazy(import("./ICYMIFeedbackSheet"), "ICYMIFeedbackSheet", {}); } }, [endVisible]); ref = useRef(null); ref2 = useRef({ scrollToTop: () => { const current = ref.current; if (current != null) { current.scrollToOffset({ offset: 0, animated: !stateFromStores }); } } }); useScrollToTop(ref2); stateFromStores3 = useStateFromStores([ICYMIFiltersStore], () => ICYMIFiltersStore.getDoubleTapBehavior()); useEffect(() => { if (stateFromStores3 === GravityICYMIDoubleTapBehavior.DEFAULT) { ref2.current = { scrollToTop: () => { const current = ref.current; if (current != null) { current.scrollToOffset({ offset: 0, animated: !stateFromStores }); } } }; } else { ref2.current = { scrollToTop: () => { showForLaterModal(SavedMessageSortTypes.BOOKMARK); } }; } }, [stateFromStores3, useNavigation(), stateFromStores]); callback = useCallback(() => { const current = ref.current; if (current != null) { current.scrollToOffset({ offset: 0, animated: !stateFromStores }); } }, [ref, stateFromStores]); const mobileQuestDockHeight = useMobileQuestDockHeight(); const callback2 = useCallback(({ item }) => { let r37; const kind = item.data.kind; if (kind === "message") { r37 = item.channelType === ChannelTypes.GUILD_ANNOUNCEMENT ? visibleItemId.item.id === item.id) != null} /> : visibleItemId.item.id === item.id) != null} />; } else if (kind === "contentInventory") { r37 = visibleItemId.item.id === item.id) != null} content={item.data.content} />; } else { if (kind === "loading") { return ; } if (kind === "bottomLoading") { return ; } if (kind === "end") { return ; } if (kind === "guildEvent") { r37 = ; } else if (kind === "recommendedGuilds") { r37 = ; } else { if (kind === "icymiHeader") { return ; } if (kind !== "forumThread") { return null; } r37 = visibleItemId.item.id === item.id) != null} />; } } return {r37}; }, [visibleItemIds, endVisible]); const memo = useMemo(() => ({ backgroundColor: "transparent" }), []); const clientThemesOverride = useClientThemesOverride(); const stateFromStores5 = useStateFromStores([ICYMIStore], () => ICYMIStore.hasNewContent(), []); const r162 = [, ,]; const r176 = [ { ICYMIActionCreators.itemInteracted("refresh_button", "refresh_button", "press_refresh_button"); ICYMIActionCreators.feedPageActioned({ actionParameters: { actionGestureType: "press", actionTargetElement: "new_content_pill", actionIntentType: "refresh", actionDestinationType: null } }); handleOnRefresh(); callback(); }} isRefreshing={isRefreshing} />, , ,]; const props2 = { ref, scrollEnabled: !loading, extraData: { endVisible }, contentContainerStyle: memo, accessibilityLabel: intl.string(t.OIgYlQ), data, refreshing: isRefreshing, refreshControl: null, onEndReachedThreshold: 3, onEndReached: null, keyExtractor: null, renderItem: null, getItemType: null, drawDistance: 100, stickyHeaderIndices: null, viewabilityConfigCallbackPairs: null }; let r196 = 1; props2.refreshControl = ; props2.onEndReached = handleEndReached; props2.keyExtractor = keyExtractor; props2.renderItem = callback2; props2.getItemType = itemToType; isAndroid(); props2.stickyHeaderIndices = stickyHeaderIndices; props2.viewabilityConfigCallbackPairs = viewabilityConfigCallbackPairs; if (!loading) { r196 = version; } r176[1] = ; r176[2] = ; r162[1] = {r176}; return {r162}; }; keyExtractor = function keyExtractor(a0) { return a0.id; }; useStyles = createStyles((a0) => ({ containerOuterTablet: { backgroundColor: Module712.colors.BACKGROUND_BASE_LOWEST, paddingHorizontal: Module712.space.PX_8, overflow: "hidden", flex: 1, paddingTop: a0 } })); styles = createICYMIStyles((a0) => ({ container: { flex: 1, flexShrink: 1, flexGrow: 1 }, containerInPanels: { flex: 1, flexShrink: 1, flexGrow: 1, overflow: "hidden", borderTopLeftRadius: Module712.radii.sm, borderTopRightRadius: Module712.radii.sm }, containerBackground: { backgroundColor: Module712.colors.BACKGROUND_BASE_LOW }, flashListWrapper: { backgroundColor: Module712.colors.BACKGROUND_BASE_LOW, minHeight: 2, flex: 1 }, refreshing: { color: Module712.colors.INTERACTIVE_TEXT_DEFAULT }, header: { backgroundColor: Module712.colors.BACKGROUND_BASE_LOW, position: "relative", overflow: "hidden", width: "100%" }, headerLeft: { flexDirection: "row", alignItems: "center" }, headerClose: { marginRight: Module712.space.PX_16, height: Module712.space.PX_32, width: Module712.space.PX_32, alignItems: "center", justifyContent: "center", borderRadius: Module712.radii.lg }, headerTitle: { height: 56, marginHorizontal: a0.margin, flexDirection: "row", alignItems: "center", justifyContent: "space-between" }, headerText: { flexDirection: "row", alignItems: "center", gap: 4 }, headerActions: { flexDirection: "row", alignItems: "center", gap: Module712.space.PX_12 }, notificationBadge: { height: 18, width: 18, borderRadius: Module712.radii.round }, loading: { flex: 1, justifyContent: "center", paddingTop: Module712.space.PX_96 }, headerBorder: { position: "absolute", bottom: 0, left: 0, right: 0, backgroundColor: Module712.colors.BORDER_SUBTLE, height: 1 } })); Component = Module19.memo(function({ inNestedNavigator }) { let r43, PressableOpacity; const r9 = styles(); const isWindowLarge = useIsWindowLarge(); const r38 = [, , ,]; if (!isWindowLarge) { r43 = null; if (inNestedNavigator) { PressableOpacity = _Pressables.PressableOpacity; r43 = {inNestedNavigator ? : } ; } } else { PressableOpacity = _Pressables.PressableOpacity; r43 = {inNestedNavigator ? : } ; } r38[1] = {r43} ; r38[2] = ; return {r38}; }); export function ICYMITab(props) { let c21867_0, styles2; const route = props.route; c21867_0 = void 0; styles2 = void 0; const colorThemeBackground = useColorThemeBackground(); const stateFromStores4 = useStateFromStores([AuthenticationStore], () => AuthenticationStore.getId()); const isWindowLarge = useIsWindowLarge(); c21867_0 = isWindowLarge; const top = useSafeAreaInsets_native().top; const inNestedNavigator = route == null ? void 0 : route.params?.inNestedNavigator; styles2 = useStyles(top); const memo = useMemo(() => c21867_0 ? styles2.containerOuterTablet : void 0, [isWindowLarge, styles2.containerOuterTablet]); return {isWindowLarge ? : } ; }