263 lines
9.2 KiB
TypeScript
263 lines
9.2 KiB
TypeScript
// Metro module 11990 (f11991).
|
|
import { useEffect } from "react";
|
|
import ApplicationStore from "../applications/ApplicationStore";
|
|
import { AnalyticEvents, PlatformTypes } from "../../Constants";
|
|
import { ImageSizes } from "../activities/Constants";
|
|
import { isListenedSessionEntry, isWatchedMediaEntry, isTopArtistEntry } from "./ContentInventoryTypes";
|
|
import { getAssetImage } from "../../utils/ApplicationAssetUtils";
|
|
import { intl, t } from "../../intl/index.native";
|
|
import useEntryActivityAndApplication from "./useEntryActivityAndApplication";
|
|
import { useGame } from "../games/hooks/useGame";
|
|
import { isStageActivity, unpackStageChannelParty } from "../stage_channels/StageChannelRichPresenceUtils";
|
|
import AvatarUtils from "../../utils/AvatarUtils";
|
|
import isOnXbox from "../activities/utils/isOnXbox";
|
|
import Platforms from "../../lib/Platforms";
|
|
import isOnPlayStation from "../activities/utils/isOnPlayStation";
|
|
import { useGetOrFetchApplication } from "../applications/useGetOrFetchApplications";
|
|
import { useStateFromStores } from "../../_bundle/Module589";
|
|
import AnalyticsUtils from "../../utils/AnalyticsUtils";
|
|
import isCrunchyrollActivity from "../activities/utils/isCrunchyrollActivity";
|
|
let useTrackActivityDefaultIcon, useRichImageForActivity;
|
|
const useComputedImagesForActivity = function useComputedImagesForActivity(activity, a1) {
|
|
let r50;
|
|
L28: {
|
|
const richImageForActivity = useRichImageForActivity(activity, a1);
|
|
const { largeImage, smallImage } = richImageForActivity;
|
|
if (largeImage != null) {
|
|
r50 = {
|
|
largeImage,
|
|
smallImage
|
|
};
|
|
} else if (isStageActivity(activity)) {
|
|
const r93 = unpackStageChannelParty(activity);
|
|
const src2 = r93 != null ? AvatarUtils.getGuildIconURL({
|
|
id: r93.guildId,
|
|
icon: activity == null ? void 0 : activity.assets?.small_image,
|
|
size: ImageSizes.SMALL
|
|
}) : void 0;
|
|
r50 = {
|
|
largeImage: src2 != null ? {
|
|
src: src2
|
|
} : void 0,
|
|
smallImage: void 0
|
|
};
|
|
} else if (isOnXbox(activity)) {
|
|
r50 = {
|
|
largeImage: {
|
|
src: Platforms.get(PlatformTypes.XBOX).icon.customPNG,
|
|
alt: intl.string(t.Nfvo72)
|
|
},
|
|
smallImage: void 0
|
|
};
|
|
} else {
|
|
if (smallImage == null && isOnPlayStation(activity)) {
|
|
r50 = {
|
|
largeImage: {
|
|
src: Platforms.get(PlatformTypes.PLAYSTATION).icon.lightPNG,
|
|
alt: intl.string(t.fFl4jo)
|
|
},
|
|
smallImage: void 0
|
|
};
|
|
break L28;
|
|
}
|
|
const src = a1 == null ? void 0 : a1.getIconURL(ImageSizes.LARGE);
|
|
const name2 = a1?.name;
|
|
const largeImage2 = src != null ? {
|
|
src,
|
|
alt: name2 == null ? intl.string(t["2B/phM"]) : intl.formatToPlainString(t.tiKyYg, {
|
|
applicationName: name2
|
|
})
|
|
} : void 0;
|
|
r50 = largeImage2 != null ? {
|
|
largeImage: largeImage2,
|
|
smallImage
|
|
} : {
|
|
largeImage: smallImage,
|
|
smallImage: void 0
|
|
};
|
|
}
|
|
}
|
|
return r50;
|
|
};
|
|
useTrackActivityDefaultIcon = function useTrackActivityDefaultIcon({ activity, application, largeImageSrc, trackingSource }) {
|
|
let stateFromStores, application_found, c19323_4, name, type, session_id, has_rich_assets, c19323_9;
|
|
stateFromStores = void 0;
|
|
application_found = void 0;
|
|
c19323_4 = void 0;
|
|
name = void 0;
|
|
type = void 0;
|
|
session_id = void 0;
|
|
has_rich_assets = void 0;
|
|
c19323_9 = void 0;
|
|
const application_id = activity?.application_id;
|
|
const getOrFetchApplication = useGetOrFetchApplication(application_id);
|
|
const stateFromStores2 = useStateFromStores([ApplicationStore], () => application_id != null && ApplicationStore.didFetchingApplicationFail(application_id));
|
|
stateFromStores = application_id == null || getOrFetchApplication != null || stateFromStores2;
|
|
application_found = getOrFetchApplication != null || application != null;
|
|
const r5 = largeImageSrc == null;
|
|
c19323_4 = r5;
|
|
name = activity?.name;
|
|
type = activity?.type;
|
|
session_id = activity?.session_id;
|
|
has_rich_assets = (activity == null ? void 0 : activity.assets?.large_image) != null || (activity == null ? void 0 : activity.assets?.small_image) != null;
|
|
const r42 = activity != null;
|
|
c19323_9 = r42;
|
|
useEffect(() => {
|
|
if (c19323_9 && stateFromStores && c19323_4) {
|
|
AnalyticsUtils.track(AnalyticEvents.ACTIVITY_DEFAULT_ICON_SHOWN, {
|
|
source: trackingSource,
|
|
application_id,
|
|
activity_name: name,
|
|
activity_type: type,
|
|
activity_session_id: session_id,
|
|
application_found,
|
|
has_rich_assets
|
|
});
|
|
}
|
|
}, [trackingSource, r42, stateFromStores, r5, application_id, name, type, session_id, application_found, has_rich_assets]);
|
|
};
|
|
useRichImageForActivity = function useRichImageForActivity(activity, activityApplication) {
|
|
const getOrFetchApplication = useGetOrFetchApplication(activity?.application_id);
|
|
if (activity == null) {
|
|
return {
|
|
largeImage: void 0,
|
|
smallImage: void 0
|
|
};
|
|
}
|
|
const r14 = activity == null ? void 0 : activity.assets?.large_image;
|
|
const r22 = r14 != null;
|
|
let largeImage = void 0;
|
|
if (r22) {
|
|
const r28 = {
|
|
src: getAssetImage(activity.application_id, r14, [ImageSizes.LARGE, ImageSizes.LARGE]),
|
|
text: null,
|
|
url: null
|
|
};
|
|
const assets = activity.assets;
|
|
const r30 = assets == null;
|
|
let text = void 0;
|
|
if (!r30) {
|
|
const large_text = assets.large_text;
|
|
text = large_text == null ? void 0 : large_text.trim();
|
|
}
|
|
r28.text = text;
|
|
r28.url = activity.assets?.large_url;
|
|
largeImage = r28;
|
|
}
|
|
const r42 = isCrunchyrollActivity(activity) ? void 0 : activity == null ? void 0 : activity.assets?.small_image;
|
|
const r47 = r42 != null;
|
|
let smallImage = void 0;
|
|
if (r47) {
|
|
const r57 = {
|
|
src: getAssetImage(activity.application_id, r42, [ImageSizes.LARGE, ImageSizes.LARGE]),
|
|
text: null,
|
|
url: null
|
|
};
|
|
const assets2 = activity.assets;
|
|
const r59 = assets2 == null;
|
|
let text2 = void 0;
|
|
if (!r59) {
|
|
const small_text = assets2.small_text;
|
|
text2 = small_text == null ? void 0 : small_text.trim();
|
|
}
|
|
r57.text = text2;
|
|
r57.url = activity.assets?.small_url;
|
|
smallImage = r57;
|
|
}
|
|
if (largeImage == null) {
|
|
const r67 = activityApplication == null ? getOrFetchApplication : activityApplication;
|
|
const src = r67 == null ? void 0 : r67.getIconURL(ImageSizes.LARGE);
|
|
const name2 = r67?.name;
|
|
largeImage = src != null ? {
|
|
src,
|
|
alt: name2 == null ? intl.string(t["2B/phM"]) : intl.formatToPlainString(t.tiKyYg, {
|
|
applicationName: name2
|
|
})
|
|
} : void 0;
|
|
}
|
|
return {
|
|
largeImage,
|
|
smallImage
|
|
};
|
|
};
|
|
export function getApplicationImage(a0) {
|
|
const src = a0 == null ? void 0 : a0.getIconURL(ImageSizes.LARGE);
|
|
const name2 = a0?.name;
|
|
if (src != null) {
|
|
return {
|
|
src,
|
|
alt: name2 == null ? intl.string(t["2B/phM"]) : intl.formatToPlainString(t.tiKyYg, {
|
|
applicationName: name2
|
|
})
|
|
};
|
|
}
|
|
}
|
|
export function useImageForContentEntry({ entry, showCoverImage = true, trackingSource: trackingSource2 }) {
|
|
let r76;
|
|
const entryActivityAndApplication = useEntryActivityAndApplication(entry);
|
|
const { activity, activityApplication } = entryActivityAndApplication;
|
|
let fallbackApplication = entryActivityAndApplication.fallbackApplication;
|
|
const r13 = fallbackApplication == null ? activityApplication : fallbackApplication;
|
|
const richImageForActivity = useRichImageForActivity(activity, activityApplication);
|
|
const { largeImage, smallImage } = richImageForActivity;
|
|
const largeImage2 = useComputedImagesForActivity(activity, r13).largeImage;
|
|
const data = useGame(r13 == null ? void 0 : r13.getCanonicalGameId()).data;
|
|
const src = data == null ? void 0 : data.getCoverURL();
|
|
const largeImage3 = isListenedSessionEntry(entry) && entry.extra.entries.length > 0 ? {
|
|
src: entry.extra.entries[0].media.image_url
|
|
} : isWatchedMediaEntry(entry) ? {
|
|
src: getAssetImage(entry.extra.application_id, entry.extra.media_assets_large_image, ImageSizes.LARGE),
|
|
alt: entry.extra.media_title
|
|
} : isTopArtistEntry(entry) ? {
|
|
src: entry.extra.media.image_url
|
|
} : void 0;
|
|
L27: {
|
|
if (largeImage != null) {
|
|
r76 = {
|
|
largeImage,
|
|
smallImage
|
|
};
|
|
} else if (largeImage3 != null) {
|
|
r76 = {
|
|
largeImage: largeImage3,
|
|
smallImage: void 0
|
|
};
|
|
} else {
|
|
if (src != null && showCoverImage) {
|
|
r76 = {
|
|
largeImage: {
|
|
src
|
|
},
|
|
smallImage: void 0
|
|
};
|
|
break L27;
|
|
}
|
|
r76 = {
|
|
largeImage: largeImage2,
|
|
smallImage: void 0
|
|
};
|
|
}
|
|
}
|
|
if (fallbackApplication == null) {
|
|
fallbackApplication = activityApplication;
|
|
}
|
|
useTrackActivityDefaultIcon({
|
|
activity,
|
|
application: fallbackApplication,
|
|
largeImageSrc: r76.largeImage?.src,
|
|
trackingSource: trackingSource2
|
|
});
|
|
return r76;
|
|
}
|
|
export function useImageForActivity(a0, a1, a2) {
|
|
const computedImagesForActivity = useComputedImagesForActivity(a0, a1);
|
|
useTrackActivityDefaultIcon({
|
|
activity: a0,
|
|
application: a1,
|
|
largeImageSrc: computedImagesForActivity.largeImage?.src,
|
|
trackingSource: a2
|
|
});
|
|
return computedImagesForActivity;
|
|
}
|
|
export { useRichImageForActivity };
|