// Module ID: 13165 // Function ID: 13166 // Name: UserProfileRecentActivityCard // Dependencies: [19, 17, 21, 13103, 8221, 13108, 4607, 576, 8429, 4317, 8656, 4458, 5639, 1396, 1925, 4603, 13094, 7236, 7256, 13115, 13116, 8768, 8779, 5175, 1114, 2] // Exports: default // Module 13165 (UserProfileRecentActivityCard) import nativeDefault from "native" /* 576 */; import StringUtils from "StringUtils" /* 1925 */; import FastImageDefault from "FastImage" /* 5639 */; import useAnalyticsLocations from "useAnalyticsLocations" /* 7236 */; import AnalyticsLocationDefault from "AnalyticsLocation" /* 7256 */; import utils from "utils" /* 8221 */; import ContentInventoryTypes from "ContentInventoryTypes" /* 8429 */; import GameProfileAnalyticUtils from "GameProfileAnalyticUtils" /* 8779 */; import ContentInventoryActivityImageUtils from "ContentInventoryActivityImageUtils" /* 13094 */; import BadgesAll from "Badges" /* 13103 */; import TrendingType from "TrendingType" /* 13108 */; import useTrackUserProfileActivityActionDefault from "useTrackUserProfileActivityAction" /* 13115 */; import useTrackUserProfileActivityViewDefault from "useTrackUserProfileActivityView" /* 13116 */; import noop from "module_19" /* 19 */; const useAnalyticsLocationsDefault = useAnalyticsLocations; const useOpenGameProfileModalDefault = tmp4(8768); require = fn; function GamingEntryBadges(entry) { entry = entry.entry; const tmp = closure_9(); const badgeCell = tmp; const found = items.filter((predicate) => predicate.predicate(entry)); let obj = { location: "user-profile", style: tmp.badges, children: null }; if (obj2.isTopGameEntry(entry)) { const obj3 = { style: tmp.badgeCell, children: null }; const obj4 = { entry }; obj3.children = tmp2(BadgesAll.TopGameBadge, obj4); let mapped = tmp2(View, obj3); } else { mapped = found.map((Badge, index) => { const obj = { style: badgeCell.badgeCell, children: timestampProducer(Badge.Badge, { entry }) }; return timestampProducer(View, obj, index); }); } obj.children = mapped; return closure_6(BadgesAll.BadgesContainer, obj); } const View = fn(17).View; const jsxProd = fn(21); ({ jsx: metroRequire, jsxs: closure_7 } = jsxProd); let items = [ { Badge: BadgesAll.GameTimestampBadge, predicate() { return true; } }, , , , , ]; let obj = { Badge: BadgesAll.GameTimestampBadge, predicate() { return true; } }; items[1] = { Badge: BadgesAll.NewGameBadge, predicate: fn(8221).isEntryNew }; let obj2 = { Badge: BadgesAll.NewGameBadge, predicate: fn(8221).isEntryNew }; items[2] = { Badge: BadgesAll.StreakBadge, predicate(entry) { let num = utils.getStreakCount(entry); if (num == null) { num = 0; } return num >= 2; } }; let obj3 = { Badge: BadgesAll.StreakBadge, predicate(entry) { let num = utils.getStreakCount(entry); if (num == null) { num = 0; } return num >= 2; } }; items[3] = { Badge: BadgesAll.TrendingBadge, predicate(entry) { const trendingType = utils.getTrendingType(entry); return null != trendingType && trendingType !== TrendingType.TrendingType.TRENDING_TYPE_UNSPECIFIED; } }; let obj4 = { Badge: BadgesAll.TrendingBadge, predicate(entry) { const trendingType = utils.getTrendingType(entry); return null != trendingType && trendingType !== TrendingType.TrendingType.TRENDING_TYPE_UNSPECIFIED; } }; items[4] = { Badge: BadgesAll.ResurrectedBadge, predicate(entry) { return null != utils.getResurrectedEntryLastPlayTime(entry); } }; let obj5 = { Badge: BadgesAll.ResurrectedBadge, predicate(entry) { return null != utils.getResurrectedEntryLastPlayTime(entry); } }; items[5] = { Badge: BadgesAll.MarathonBadge, predicate(entry) { let tmp3 = true === utils.isEntryMarathon(entry); if (tmp3) { tmp3 = null != utils.getMarathonDescription(entry).text; const tmpResult = utils; } return tmp3; } }; const createStyles = fn(4607); let obj7 = { body: null, content: null, imageContainer: null, imageAspectRatio: null, posterImageAspectRatio: null, largeImage: null, smallImageBackground: null, smallImage: null, badges: null, badgeCell: null }; let obj6 = { Badge: BadgesAll.MarathonBadge, predicate(entry) { let tmp3 = true === utils.isEntryMarathon(entry); if (tmp3) { tmp3 = null != utils.getMarathonDescription(entry).text; const tmpResult = utils; } return tmp3; } }; obj7.body = { flexDirection: "row", alignItems: "center", gap: nativeDefault.space.PX_16 }; obj7.content = { flex: 1 }; obj7.imageContainer = { position: "relative" }; obj7.imageAspectRatio = { width: 60, maxHeight: 60, aspectRatio: "1 / 1" }; obj7.posterImageAspectRatio = { width: 60, maxHeight: 100, aspectRatio: "2 / 3" }; let size = { borderRadius: nativeDefault.radii.xs, width: "100%", height: "100%" }; obj7.largeImage = size; const rect = { borderRadius: 16, position: "absolute", right: -4, bottom: -4, backgroundColor: nativeDefault.colors.BACKGROUND_BASE_LOW }; obj7.smallImageBackground = rect; obj7.smallImage = { width: 24, height: 24, borderRadius: 12 }; let obj9 = { flexDirection: "row", alignItems: "center", gap: nativeDefault.space.PX_16 }; obj7.badges = { flexDirection: "row", flexWrap: "wrap", alignItems: "center", rowGap: nativeDefault.space.PX_4, marginTop: nativeDefault.space.PX_8 }; let obj10 = { flexDirection: "row", flexWrap: "wrap", alignItems: "center", rowGap: nativeDefault.space.PX_4, marginTop: nativeDefault.space.PX_8 }; obj7.badgeCell = { width: "50%", paddingRight: nativeDefault.space.PX_8 }; let closure_9 = createStyles.createStyles(obj7); let closure_11 = noop.memo((poster) => { ({ largeImage, smallImage } = poster); const tmp = closure_9(); let src; if (largeImage != null) { src = largeImage.src; } if (null == src) { const obj2 = { style: null, children: null }; items = [, ]; ({ imageContainer: arr2[0], imageAspectRatio: arr2[1] } = tmp); obj2.style = items; let obj3 = { size: "custom", style: tmp.largeImage, color: null }; const tmp12 = View; const tmp2Result = tmp2(4458); const colors = nativeDefault.colors; obj3.color = tmp2(4458).isThemeDark(obj.useThemeContext().theme) ? colors.WHITE : colors.BLACK; obj3 = tmp11(tmp2(8656).UnknownGameIcon, obj3); obj2.children = obj3; timestampProducer(tmp12, obj2); const isThemeDarkResult = tmp2(4458).isThemeDark(obj.useThemeContext().theme); } else { const items1 = [tmp.imageContainer, ]; const obj4 = { style: null, children: null }; items1[1] = poster.poster ? tmp.posterImageAspectRatio : tmp.imageAspectRatio; obj4.style = items1; const obj5 = { source: null, alt: null, style: null }; const tmp16 = React5; const tmp6 = importDefault; const tmp7 = FastImageDefault; obj5.source = tmp2(1396).makeSource(largeImage.src); obj5.alt = largeImage.alt; obj5.style = tmp.largeImage; const items2 = [timestampProducer(tmp7, obj5), ]; let src1; if (smallImage != null) { src1 = smallImage.src; } let tmp5Result = null != src1; if (tmp5Result) { const obj6 = { style: tmp.smallImageBackground, children: null }; const obj7 = { source: null, alt: null, style: null }; const tmp6Result = tmp6(5639); obj7.source = tmp2(1396).makeSource(smallImage.src); obj7.alt = smallImage.alt; obj7.style = tmp.smallImage; obj6.children = tmp5(tmp6Result, obj7); tmp5Result = tmp5(tmp17, obj6); const tmp2Result4 = tmp2(1396); } items2[1] = tmp5Result; obj4.children = items2; return tmp16(View, obj4); } }); let closure_12 = noop.memo((arg0) => { ({ entry, title, subtitle } = arg0); ({ largeImage, smallImage, style } = arg0); const tmp = closure_9(); const obj = { style, children: null }; const obj2 = { style: tmp.body, children: null }; const obj3 = { largeImage, smallImage, poster: ContentInventoryTypes.isWatchedMediaEntry(entry) }; items = [timestampProducer(closure_11, obj3), ]; const obj5 = { style: tmp.content, children: null }; const isNullOrEmptyResult = StringUtils.isNullOrEmpty(title); let tmp2Result = !isNullOrEmptyResult; if (!isNullOrEmptyResult) { const obj7 = { variant: "text-md/semibold", color: "mobile-text-heading-primary", lineClamp: 1, children: title }; tmp2Result = tmp2(tmp5(4603).Text, obj7); } const items1 = [tmp2Result, , ]; const isNullOrEmptyResult1 = StringUtils.isNullOrEmpty(subtitle); let tmp2Result2 = !isNullOrEmptyResult1; if (!isNullOrEmptyResult1) { const obj8 = { variant: "text-xs/medium", lineClamp: 1, children: subtitle }; tmp2Result2 = tmp2(tmp5(4603).Text, obj8); } items1[1] = tmp2Result2; const tmp5Result = StringUtils; let isGamingLikeEntryResult = ContentInventoryTypes.isGamingLikeEntry(entry); if (isGamingLikeEntryResult) { const obj9 = { entry }; isGamingLikeEntryResult = tmp2(GamingEntryBadges, obj9); } items1[2] = isGamingLikeEntryResult; obj5.children = items1; items[1] = React5(View, obj5); obj2.children = items; obj.children = React5(View, obj2); return timestampProducer(View, obj); }); size = fn(2); const result = size.fileFinishedImporting("modules/user_profile/native/UserProfileRecentActivityCard.tsx"); export default function UserProfileRecentActivityCard(style) { ({ user, entry } = style); closure_1 = undefined; const imageForContentEntry = ContentInventoryActivityImageUtils.useImageForContentEntry({ entry, showCoverImage: false, trackingSource: "user_profile_recent_activity_native" }); ({ largeImage, smallImage } = imageForContentEntry); const analyticsLocations = useAnalyticsLocationsDefault(AnalyticsLocationDefault.USER_PROFILE_RECENT_ACTIVITY_CARD).analyticsLocations; const tmp6 = useTrackUserProfileActivityActionDefault({ display: "recent", user, entry, analyticsLocations }); closure_0 = tmp6; useTrackUserProfileActivityViewDefault({ userId: user.id, onAction: tmp6 }); let application_id; if ("application_id" in entry.extra) { application_id = entry.extra.application_id; } const obj3 = { location: "UserProfileRecentActivityCard", applicationId: application_id, source: null, trackEntryPointImpression: true, sourceUserId: null }; const obj2 = { userId: user.id, onAction: tmp6 }; obj3.source = GameProfileAnalyticUtils.GameProfileSources.UserProfile; obj3.sourceUserId = user.id; const tmp4ResultResult = useOpenGameProfileModalDefault(obj3); closure_1 = tmp4ResultResult; items = [tmp6, tmp4ResultResult]; const callback = noop.useCallback(() => { closure_0({ action: "PRESS_TEXT" }); if (closure_1 != null) { closure_1(); } }, items); const tmp4Result = useOpenGameProfileModalDefault; if (tmpResult.isGamingLikeEntry(entry)) { const obj4 = { title: entry.extra.game_name }; let obj8 = obj4; } else { if (tmpResult4.isWatchedMediaEntry(entry)) { const obj5 = { title: entry.extra.media_title, subtitle: entry.extra.media_subtitle }; obj8 = obj5; } else { if (tmpResult5.isListenedSessionEntry(entry)) { const first = entry.extra.entries[0]; let media; if (first != null) { media = first.media; } let title1; if (media != null) { title1 = media.title; } const obj6 = { title: title1, subtitle: null }; let name; if (media != null) { const first1 = media.artists[0]; if (first1 != null) { name = first1.name; } } obj6.subtitle = name; obj8 = obj6; } else { if (tmpResult6.isLaunchedActivityEntry(entry)) { const obj7 = { title: entry.extra.activity_name }; obj8 = obj7; } else { obj8 = { title: "r" }; } tmpResult6 = tmp(8429); } tmpResult5 = tmp(8429); } tmpResult4 = tmp(8429); } ({ title, subtitle } = obj8); let str; if (title != null) { str = title.trim(); } let trimmed; if (subtitle != null) { trimmed = subtitle.trim(); } const tmp20 = timestampProducer(closure_12, { entry, largeImage, smallImage, title: str, subtitle: trimmed, style: style.style }); const obj9 = { value: analyticsLocations, children: null }; let tmp19Result = tmp20; if (null != tmp4ResultResult) { const obj10 = { onPress: callback, accessibilityRole: "button", accessibilityLabel: null, children: null }; const intl = tmp(1114).intl; if (str == null) { str = ""; } const obj11 = { gameName: str }; obj10.accessibilityLabel = intl.formatToPlainString(tmp(1114).t["9sZWVp"], obj11); obj10.children = tmp20; tmp19Result = tmp19(tmp(5175).PressableOpacity, obj10); } obj9.children = tmp19Result; return timestampProducer(useAnalyticsLocations.AnalyticsLocationProvider, obj9); };