87 lines
3.2 KiB
TypeScript
87 lines
3.2 KiB
TypeScript
// Metro module 13708 (f13709).
|
|
import { useCallback } from "react";
|
|
import UserStore from "../../../../stores/UserStore";
|
|
import { Base64GIFPrefix, UpsellTypes, AnalyticsPages, AnalyticsSections, UPLOAD_MEDIUM_SIZE } from "../../../../Constants";
|
|
import { PremiumUpsellTypes } from "../../../premium/PremiumConstants";
|
|
import { useStateFromStores } from "../../../../_bundle/defaultAreStatesEqual";
|
|
import PremiumUpsellUtils from "../../../../utils/native/PremiumUpsellUtils";
|
|
import ActionSheetActionCreators from "../../../action_sheet/native/ActionSheetActionCreators";
|
|
import UploadUtils from "../../../../utils/native/UploadUtils";
|
|
import PremiumUtils from "../../../../utils/PremiumUtils";
|
|
import { createPendingImage, generateAvatarDescription } from "../../../recent_avatars/RecentAvatarUtils";
|
|
import { setTryItOutAvatar } from "../../UserProfileActionCreators";
|
|
import { setPendingChanges } from "../../UserProfileSettingsActionCreators";
|
|
import { announcePendingAvatarChange } from "../../../profile_customization/ProfileCustomizationUtils";
|
|
function $mk116575($env) {
|
|
return function isGIF(a0) {
|
|
return a0.match(new RegExp("^" + Base64GIFPrefix, "i")) != null;
|
|
};
|
|
}
|
|
let env9523 = {};
|
|
export default function useUploadAvatar(a0) {
|
|
let c20654_4;
|
|
const { guildId, isTryItOut = false } = a0;
|
|
let c20654_1 = isTryItOut;
|
|
const analyticsLocations = a0.analyticsLocations;
|
|
c20654_4 = void 0;
|
|
const stateFromStores = useStateFromStores([UserStore], () => UserStore.getCurrentUser());
|
|
const callback = useCallback(() => {
|
|
PremiumUpsellUtils.handleShowUpsellAlert({
|
|
initialUpsellKey: UpsellTypes.ANIMATED_AVATAR,
|
|
analyticsLocation: {
|
|
page: AnalyticsPages.USER_SETTINGS,
|
|
section: AnalyticsSections.SETTINGS_OVERVIEW
|
|
},
|
|
analyticsProperties: {
|
|
type: PremiumUpsellTypes.ANIMATED_USER_AVATAR_MODAL
|
|
},
|
|
analyticsLocations
|
|
});
|
|
}, [analyticsLocations]);
|
|
c20654_4 = callback;
|
|
return useCallback(async () => {
|
|
let c27564_0, c27564_1;
|
|
L18: {
|
|
let env30663;
|
|
c27564_1 = void 0;
|
|
const r25 = env30663 = {
|
|
$parent: env9523
|
|
};
|
|
c27564_0 = r25;
|
|
env30663[0] = void 0;
|
|
env30663[1] = void 0;
|
|
env30663[2] = void 0;
|
|
env30663[3] = void 0;
|
|
env30663[4] = void 0;
|
|
ActionSheetActionCreators.hideActionSheet();
|
|
env30663[0] = await UploadUtils.openImagePicker({
|
|
size: UPLOAD_MEDIUM_SIZE
|
|
});
|
|
env30663[1] = env30663[0].base64;
|
|
env30663[2] = env30663[0].originalMd5;
|
|
if (env30663[1] != null) {
|
|
env30663[3] = c20654_1 || PremiumUtils.canUseAnimatedAvatar(stateFromStores);
|
|
const r64 = env30663[1];
|
|
if ($mk116575(env9523)(r64) && !env30663[3]) {
|
|
(0, c20654_4)();
|
|
break L18;
|
|
}
|
|
env30663[4] = createPendingImage({
|
|
imageUri: env30663[1],
|
|
description: generateAvatarDescription(),
|
|
originalMd5: env30663[2]
|
|
});
|
|
if (c20654_1) {
|
|
setTryItOutAvatar(env30663[4]);
|
|
} else {
|
|
setPendingChanges({
|
|
guildId,
|
|
avatar: env30663[4]
|
|
});
|
|
announcePendingAvatarChange("set");
|
|
}
|
|
}
|
|
}
|
|
}, [stateFromStores, guildId, isTryItOut, callback]);
|
|
};
|