// Metro module 9417 (f9418). import { useMemo } from "react"; import { Pressable, View } from "react-native"; import SubscriptionRoleStore from "../../../guild_role_subscriptions/SubscriptionRoleStore"; import SelectedGuildStore from "../../../../stores/SelectedGuildStore"; import UserStore from "../../../../stores/UserStore"; import { AnalyticEvents, AnalyticsPages, AnalyticsSections, UserSettingsSections } from "../../../../Constants"; import { createStyles } from "../../../../design/components/Styles/native/createStyles"; import Module712 from "../../../../_bundle/Module712"; import PremiumUtils from "../../../../utils/PremiumUtils"; import AnalyticsUtils from "../../../../utils/AnalyticsUtils"; import openPremiumModal from "../../../../components_native/premium/openPremiumModal"; import ActionSheetActionCreators from "../../../action_sheet/native/ActionSheetActionCreators"; import { useSharedMessageEmojiStyles } from "./useSharedMessageEmojiStyles"; import { useStateFromStores } from "../../../../_bundle/Module589"; import useAnalyticsLocations from "../../../app_analytics/useAnalyticsLocations"; import * as _RoleSubscriptionEmojiUtils from "../../../guild_role_subscriptions/RoleSubscriptionEmojiUtils"; import { isPurchasableRoleSubscriptionEmoji } from "../../../guild_role_subscriptions/RoleSubscriptionEmojiUtils"; import { EmojiTypes } from "../../../emojis/EmojiTypes"; import { shouldHideGuildPurchaseEntryPoints } from "../../../creator_monetization_review/CreatorMonetizationRestrictionsUtils"; import { useIsFavoriteEmoji } from "../../../emoji_picker/EmojiPickerUtils"; import TidaWebformExperiment from "../../../guild/TidaWebformExperiment"; import { DeveloperMode } from "../../../user_settings/UserSettings"; import { getEmojiPopoutData, EmojiPopoutType } from "../../getEmojiPopoutMessage"; import { openUserSettings } from "../../../user_settings/core/native/openUserSettings"; import { useTrackOpenPopout } from "../../../emojis/useTrackOpenPopout"; import { StarIcon } from "../../../../design/components/Icon/native/redesign/generated/StarIcon"; import { StarOutlineIcon } from "../../../../design/components/Icon/native/redesign/generated/StarOutlineIcon"; import { Text } from "../../../../design/components/Text/native/Text"; import { intl, t } from "../../../../intl/index.native"; import { unfavoriteEmoji, favoriteEmoji } from "../../../../actions/EmojiActionCreators"; import ToastActionCreators from "../../../toast/native/ToastActionCreators"; import { MoreHorizontalIcon } from "../../../../design/components/Icon/native/redesign/generated/MoreHorizontalIcon"; import { NitroWheel } from "../../../../design/void/native"; import { Button } from "../../../../design/components/Button/native/Button.native"; import FastImage from "../../../../components_native/common/FastImage"; import { handleJoinGuild } from "../../../guild/GuildUtils"; import { FormDivider } from "../../../../design/void/Form/native/index"; import ExpressionGuildDetails from "./ExpressionGuildDetails"; import { EmojiGrid } from "./EmojiGrid"; import { HermesBuiltin } from "../../../../_hermes/prelude"; const useStyles = createStyles({ nitroWheel: { height: 32, width: 32 }, nitroWheelPurple: { tintColor: Module712.colors.CONTROL_BRAND_FOREGROUND_NEW }, emojiDescriptionWrapperOuter: { flexDirection: "row", flex: 1, alignItems: "center", gap: 8 }, starIcon: { height: 32, width: 32, margin: 0, padding: 0, flex: 0 }, starIconSelected: { tintColor: Module712.colors.ICON_FEEDBACK_WARNING }, starIconUnselected: { tintColor: Module712.colors.INTERACTIVE_TEXT_DEFAULT }, moreMenuIcon: { height: 32, width: 32, justifyContent: "center", alignItems: "center", color: Module712.colors.INTERACTIVE_ICON_DEFAULT }, bottomCtaButton: { marginTop: 24 }, ctaDescriptionWrapper: { display: "flex", flexDirection: "row", alignItems: "center", justifyContent: "flex-start", marginTop: 8 }, betaTag: { backgroundColor: Module712.colors.WHITE }, betaTagTextAddPack: { color: Module712.unsafe_rawColors.BRAND_530 }, betaTagTextRemovePack: { color: Module712.unsafe_rawColors.PRIMARY_500 }, favoriteButtonContainer: { paddingTop: Module712.space.PX_4 } }); export default function CustomEmojiContent(props) { let r258, r304, r305; let stateFromStores2, analyticsLocations, isFavoriteEmoji, analyticsLocation; const { emojiNode, sourceType, expressionSourceApplication, expressionSourceGuild, customEmojiFromJoinedGuild, hasJoinedEmojiSourceGuild, nonce } = props; stateFromStores2 = void 0; analyticsLocations = void 0; isFavoriteEmoji = void 0; analyticsLocation = void 0; const r16 = { ...useStyles(), ...useSharedMessageEmojiStyles() }; let c17207_4 = r16; const stateFromStores = useStateFromStores([UserStore], () => UserStore.getCurrentUser()); const isPremium = PremiumUtils.isPremium(stateFromStores); stateFromStores2 = useStateFromStores([SelectedGuildStore], () => SelectedGuildStore.getGuildId()); const emojiComesFromCurrentGuild = stateFromStores2 != null && stateFromStores2 === expressionSourceGuild?.id; analyticsLocations = useAnalyticsLocations().analyticsLocations; const memo = useMemo(() => { let r3; if (customEmojiFromJoinedGuild == null) { r3 = { isRoleSubscriptionEmoji: false, isUnusableRoleSubscriptionEmoji: false, userIsRoleSubscriber: false }; } else { r3 = { isRoleSubscriptionEmoji: isPurchasableRoleSubscriptionEmoji(customEmojiFromJoinedGuild), isUnusableRoleSubscriptionEmoji: null, userIsRoleSubscriber: null }; let r16 = stateFromStores2; if (stateFromStores2 == null) { r16 = void 0; } r3.isUnusableRoleSubscriptionEmoji = _RoleSubscriptionEmojiUtils.isUnusableRoleSubscriptionEmoji(customEmojiFromJoinedGuild, r16); r3.userIsRoleSubscriber = SubscriptionRoleStore.getUserSubscriptionRoles(customEmojiFromJoinedGuild.guildId).size > 0; } return r3; }, [customEmojiFromJoinedGuild, stateFromStores2]); const { isRoleSubscriptionEmoji, isUnusableRoleSubscriptionEmoji, userIsRoleSubscriber } = memo; const r76 = isUnusableRoleSubscriptionEmoji ? customEmojiFromJoinedGuild?.type !== EmojiTypes.GUILD : !isUnusableRoleSubscriptionEmoji; const shouldHideRoleSubscriptionCTA = r76 ? !r76 : shouldHideGuildPurchaseEntryPoints(customEmojiFromJoinedGuild?.guildId); isFavoriteEmoji = useIsFavoriteEmoji(stateFromStores2, customEmojiFromJoinedGuild); const tidaWebformEnabled = TidaWebformExperiment.useExperiment({ location: "CustomEmojiContent" }, { autoTrackExposure: false }).tidaWebformEnabled; const setting = DeveloperMode.useSetting(); let isDiscoverable = expressionSourceGuild == null ? void 0 : expressionSourceGuild.isDiscoverable(); if (isDiscoverable == null) { isDiscoverable = false; } analyticsLocation = { page: stateFromStores2 != null ? AnalyticsPages.GUILD_CHANNEL : AnalyticsPages.DM_CHANNEL, section: AnalyticsSections.EMOJI_UPSELL_POPOUT }; const emojiPopoutData = getEmojiPopoutData({ sourceType, expressionSourceApplication, isPremium, hasJoinedEmojiSourceGuild, isRoleSubscriptionEmoji, isUnusableRoleSubscriptionEmoji, userIsRoleSubscriber, shouldHideRoleSubscriptionCTA, emojiComesFromCurrentGuild, isDiscoverable, onOpenPremiumSettings: () => { ActionSheetActionCreators.hideAllActionSheets(); AnalyticsUtils.track(AnalyticEvents.CLOSE_POPOUT, { nonce }); AnalyticsUtils.track(AnalyticEvents.PREMIUM_PROMOTION_OPENED, { location_page: analyticsLocation.page, location_section: analyticsLocation.section }); openUserSettings({ screen: UserSettingsSections.PREMIUM, params: { analyticsLocation } }); } }); useTrackOpenPopout({ emojiId: emojiNode.id, currentGuildId: stateFromStores2, popoutData: emojiPopoutData, emojiSourceGuildId: expressionSourceGuild?.id, nonce }); const { emojiDescription, type } = emojiPopoutData; const r122 = isUnusableRoleSubscriptionEmoji ? !isUnusableRoleSubscriptionEmoji : hasJoinedEmojiSourceGuild; const title = hasJoinedEmojiSourceGuild ? intl.string(t.ohTzZH) : intl.string(t["eLfh+a"]); const JOIN_GUILD = EmojiPopoutType.JOIN_GUILD; const style = { ...[EmojiPopoutType.GET_PREMIUM, EmojiPopoutType.JOIN_GUILD].includes(type) ? r16.ctaButton : r16.bottomCtaButton, borderRadius: Module712.radii.xl }; const style2 = { ...r16.emojiContainer, marginTop: 8 }; const r172 = [, ,]; const r184 = [ {`:${emojiNode.alt}:`} , ,]; const r185 = emojiDescription != null && {emojiDescription}; const handleAddRemoveFavorite = function handleAddRemoveFavorite() { const content = function content() { return {isFavoriteEmoji ? intl.string(t.in1rga) : intl.string(t.mE2e8A)} ; }; ActionSheetActionCreators.hideAllActionSheets(); AnalyticsUtils.track(AnalyticEvents.CLOSE_POPOUT, { nonce }); if (isFavoriteEmoji) { unfavoriteEmoji(customEmojiFromJoinedGuild); ToastActionCreators.open({ key: "EMOJI_UNFAVORITED", icon: () => { const style = {}; HermesBuiltin.copyDataProperties(style, c17207_4.starIcon); HermesBuiltin.copyDataProperties(style, c17207_4.starIconUnselected); return ; }, content }); } else { favoriteEmoji(customEmojiFromJoinedGuild); ToastActionCreators.open({ key: "EMOJI_FAVORITED", icon: () => { const style = {}; HermesBuiltin.copyDataProperties(style, c17207_4.starIcon); HermesBuiltin.copyDataProperties(style, c17207_4.starIconSelected); return ; }, content }); } }; r184[1] = r185; const r192 = [{r184}, r122 ? tidaWebformEnabled ? null : {isFavoriteEmoji ? : } : null, ,]; const r227 = tidaWebformEnabled ? setting ? : null : null; const showingJoinGuildCta = type === JOIN_GUILD; r192[2] = r227; r172[1] = {r192}; const r253 = [{r172}, , , ,]; if (type === EmojiPopoutType.GET_PREMIUM) { const GET_PREMIUM = EmojiPopoutType.GET_PREMIUM; let r279 = null; if (type === GET_PREMIUM) { let shouldTintPurple = ({ shouldTintPurple: false }).shouldTintPurple; if (shouldTintPurple === void 0) { shouldTintPurple = false; } const nitroWheel = r16.nitroWheel; r279 =