Files
2026-07-28 01:06:53 +03:00

349 lines
23 KiB
TypeScript

/* Metro module 13494; source: modules/premium/native/PremiumTabBadge.tsx; dependencies: [57, 31, 27, 3808, 1880, 7047, 33, 4501, 697, 4002, 4048, 4573, 8742, 480, 7583, 1305, 13495, 7062, 7258, 3802, 3968, 1365, 566, 7013, 7559, 8314, 7582, 1244, 4589, 676, 477, 2] */
import Module00057 from '../../../by-id/module-00057.js'; /* Metro dependency 57 */
import SubscriptionStore from '../../../stores/billing/SubscriptionStore.tsx'; /* Metro dependency 3808 */
import UseTheme from '../../../hooks/useTheme.tsx'; /* Metro dependency 4048 */
import UseTrackImpression from '../../app_analytics/useTrackImpression.tsx'; /* Metro dependency 8742 */
import * as FileImportTrackerModule from '../../../by-id/module-00002-FileImportTracker.js'; /* Metro dependency 2 */
import * as ReactNativeModule from '../../../by-id/module-00027-ReactNative.js'; /* Metro dependency 27 */
import * as ReactModule from '../../../by-id/module-00031-React.js'; /* Metro dependency 31 */
import * as JsxRuntimeModule from '../../../by-id/module-00033-JsxRuntime.js'; /* Metro dependency 33 */
import * as AnalyticsUtilsModule from '../../../external/discord_common/js/packages/analytics-utils/AnalyticsUtils.tsx'; /* Metro dependency 480 */
import * as FluxModule from '../../../external/discord_common/js/packages/flux/index.tsx'; /* Metro dependency 566 */
import * as ConstantsIOSModule from '../../../ConstantsIOS.tsx'; /* Metro dependency 676 */
import * as PremiumConstantsModule from '../PremiumConstants.tsx'; /* Metro dependency 1880 */
import * as PremiumUtilsModule from '../../../utils/PremiumUtils.tsx'; /* Metro dependency 3802 */
import * as DismissibleContentUnsafeUtilsModule from '../../dismissible_content/DismissibleContentUnsafeUtils.tsx'; /* Metro dependency 3968 */
import * as SharedModule from '../../../design/shared.tsx'; /* Metro dependency 4002 */
import * as TextModule from '../../../design/components/Text/native/Text.tsx'; /* Metro dependency 4573 */
import * as UseSelectedDismissibleContentModule from '../../dismissible_content/hooks/useSelectedDismissibleContent.tsx'; /* Metro dependency 7013 */
import * as ColorConstantsModule from '../../colors/native/ColorConstants.tsx'; /* Metro dependency 7047 */
import * as UsePremiumTrialOfferNativeModule from '../hooks/usePremiumTrialOffer.native.tsx'; /* Metro dependency 7062 */
import * as UsePremiumDiscountOfferAndroidModule from '../hooks/usePremiumDiscountOffer.android.tsx'; /* Metro dependency 7258 */
import * as UseIsEligibleSenderForReferralProgramModule from '../referral_program/hooks/useIsEligibleSenderForReferralProgram.tsx'; /* Metro dependency 7559 */
import * as UsePromotionMarketingComponentModule from '../hooks/usePromotionMarketingComponent.tsx'; /* Metro dependency 7582 */
import * as MarketingComponentTypeModule from '../../../external/discord_common/js/shared/shared-constants/MarketingComponentType.tsx'; /* Metro dependency 7583 */
import * as ReferralProgramUtilsModule from '../referral_program/ReferralProgramUtils.tsx'; /* Metro dependency 8314 */
function _fun102544(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#102544, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13684:6, offset: 0x0223fcda, size: 633 bytes, params: 8, frame: 23
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
ReactModule;
let value = JsxRuntimeModule;
const env0_8 = value.jsx;
const env0_9 = value.jsxs;
value = require(4501) /* metro dependency 4501: createStyles */;
const createStyles = value.createStyles;
object = {};
const object2 = {'paddingVertical': 4, 'paddingHorizontal': 8};
object2.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.round;
object.tag = object2;
const object3 = {'display': 'flex', 'minWidth': 16, 'minHeight': 16, 'paddingHorizontal': 8,
'justifyContent': 'center', 'alignItems': 'center', 'gap': 4};
object3.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.round;
object.badge = object3;
const BACKGROUND_BRAND = (importDefault(697) /* metro dependency 697: native */).colors.BACKGROUND_BRAND;
object.badgeBackgroundLightTheme = {backgroundColor: BACKGROUND_BRAND};
const WHITE = (importDefault(697) /* metro dependency 697: native */).colors.WHITE;
object.badgeBackgroundDarkTheme = {backgroundColor: WHITE};
const object6 = {'paddingVertical': 2, 'paddingHorizontal': 12, 'borderRadius': null, 'backgroundColor': null,
'display': 'flex', 'flexDirection': 'row', 'alignItems': 'center', 'textAlignVertical': 'center'};
object6.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.round;
let BORDER_SUBTLE = (importDefault(697) /* metro dependency 697: native */).colors.BORDER_SUBTLE;
object6.backgroundColor = BORDER_SUBTLE;
object.acked = object6;
BORDER_SUBTLE = (importDefault(697) /* metro dependency 697: native */).colors.BORDER_SUBTLE;
object.ackedBadge = {backgroundColor: BORDER_SUBTLE};
const INTERACTIVE_TEXT_DEFAULT = (importDefault(697) /* metro dependency 697: native */).colors.INTERACTIVE_TEXT_DEFAULT;
object.icon = {color: INTERACTIVE_TEXT_DEFAULT, marginRight: 2};
object.text = {paddingBottom: 2};
const object10 = {'paddingVertical': 2, 'paddingHorizontal': 12, 'borderRadius': null, 'display': 'flex',
'flexDirection': 'row', 'alignItems': 'center', 'textAlignVertical': 'center'};
object10.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.round;
object.premiumDiscountBadge = object10;
const env0_10 = Reflect.apply(createStyles, value, [object]);
(FileImportTrackerModule).fileFinishedImporting('modules/premium/native/PremiumTabBadge.tsx');
exports.default = PremiumTabBadge;
function ThemedTabBadge({label}) { // fn#102545, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13684:1157, offset: 0x0223ff53, size: 210 bytes, params: 2, frame: 20
const styles = useStyles();
const isThemeDark2 = SharedModule.isThemeDark((UseTheme)());
const items2 = [styles.badge];
items2[1] = isThemeDark2 ? styles.badgeBackgroundDarkTheme : styles.badgeBackgroundLightTheme;
const Text = (TextModule).Text;
return (
<View style={items2}>
<Text
variant="eyebrow"
color={isThemeDark2 ? 'black' : 'always-white'}
style={styles.text}
>
{label}
</Text>
</View>
);
}
function OfferBadge({acked, badgeCopy, ackedBadgeCopy, componentId}) { // fn#102546, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13684:1424, offset: 0x02240025, size: 415 bytes, params: 2, frame: 25
var r0;
var Icon;
var icon;
const styles = useStyles();
const defaultImport = UseTrackImpression;
const object = {};
const ImpressionTypes = (AnalyticsUtilsModule).ImpressionTypes;
const VIEW = ImpressionTypes.VIEW;
object.type = VIEW;
const ImpressionNames = (AnalyticsUtilsModule).ImpressionNames;
const PREMIUM_MARKETING_COMPONENT = ImpressionNames.PREMIUM_MARKETING_COMPONENT;
object.name = PREMIUM_MARKETING_COMPONENT;
const MarketingComponentType = (MarketingComponentTypeModule).MarketingComponentType;
const PREMIUM_TAB = MarketingComponentType.PREMIUM_TAB;
object.properties = {component_type: PREMIUM_TAB, component_id: componentId};
defaultImport(object, {disableTrack: componentId == null});
if (acked) {
var viewBindingProps = {style: styles.acked};
Icon = (require(1305) /* metro dependency 1305: native */).Icon;
var iconProps = {source: importDefault(13495) /* metro dependency 13495 */,
size: (require(1305) /* metro dependency 1305: native */).Icon.Sizes.EXTRA_SMALL};
icon = styles.icon;
iconProps.color = icon.color;
icon = styles.icon;
iconProps.style = icon;
r0 = (
<View {...viewBindingProps}>
<Icon {...iconProps} />
{((Text) => <Text variant="eyebrow" color="interactive-text-default" style={styles.text}>{ackedBadgeCopy}</Text>)((require(4573) /* metro dependency 4573: Text */).Text)}
</View>
);
} else {
r0 = <ThemedTabBadge label={badgeCopy} />;
}
return r0;
}
function PremiumTabBadge() { // fn#102547, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13684:1996, offset: 0x022401c4, size: 2256 bytes, params: 1, frame: 34
var r2;
var r0;
var PREMIUM_TAB_MARKETING_MOMENT_OFFER_BADGE;
var properties;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
var string;
const t = (require(1244) /* metro dependency 1244: indexNative */).t;
var defaultImport;
const HorizontalGradient = (ConstantsIOSModule).HorizontalGradient;
const Text = (TextModule).Text;
const Icon = (require(1305) /* metro dependency 1305: native */).Icon;
var icon;
var items2;
var OS9KPu;
var defaultImport3;
var moduleValue12;
var premiumTab;
var badgeLabel;
var value;
const value2 = undefined;
const styles = useStyles();
const value3 = (UsePremiumTrialOfferNativeModule).usePremiumTrialOffer();
const value4 = (UsePremiumDiscountOfferAndroidModule).usePremiumDiscountOffer();
const value5 = (PremiumUtilsModule).useHasTier2Premium();
const UNSAFE_useIsDismissibleContentDismissed = DismissibleContentUnsafeUtilsModule.UNSAFE_useIsDismissibleContentDismissed;
const DismissibleContent = (require(1365) /* metro dependency 1365: dismissible_content */).DismissibleContent;
const MOBILE_NITRO_HOME_SETTINGS_BADGE = DismissibleContent.MOBILE_NITRO_HOME_SETTINGS_BADGE;
let r1 = !Reflect.apply(UNSAFE_useIsDismissibleContentDismissed, DismissibleContentUnsafeUtilsModule,
[MOBILE_NITRO_HOME_SETTINGS_BADGE]) && value5;
const useStateFromStores = FluxModule.useStateFromStores;
const items = [SubscriptionStore];
const premiumTypeSubscription = Reflect.apply(useStateFromStores, FluxModule, [items, function() {
return SubscriptionStore.getPremiumTypeSubscription();
}]);
const value8 = null;
const trialId = value8 == premiumTypeSubscription ? value2 : premiumTypeSubscription.trialId;
let useSelectedDismissibleContent = UseSelectedDismissibleContentModule.useSelectedDismissibleContent;
const value10 = Module00057(Reflect.apply(useSelectedDismissibleContent, UseSelectedDismissibleContentModule,
[trialId !== PREMIUM_TIER_2_REFERRAL_TRIAL_ID || r1 ? [] : [(require(1365) /* metro dependency 1365: dismissible_content */).DismissibleContent.REFERRAL_TRIAL_MOBILE_NITRO_HOME_BADGE],
value2, true]), 2);
const property = value10[0];
value10[1];
useSelectedDismissibleContent = UseSelectedDismissibleContentModule.useSelectedDismissibleContent;
const value12 = Module00057(Reflect.apply(useSelectedDismissibleContent, UseSelectedDismissibleContentModule,
[r1 ? [] : value5 ? [(require(1365) /* metro dependency 1365: dismissible_content */).DismissibleContent.WHATS_NEW_TENURE_BADGE_REWARD] : [],
value2, true]), 2);
const property2 = value12[0];
value12[1];
const value13 = (UseIsEligibleSenderForReferralProgramModule).useIsEligibleSenderForReferralProgram();
const value14 = (ReferralProgramUtilsModule).useIsReferralProgramEntrypointBadgeAcknowledged();
const usePromotionMarketingComponent = UsePromotionMarketingComponentModule.usePromotionMarketingComponent;
const MarketingComponentType = (MarketingComponentTypeModule).MarketingComponentType;
const PREMIUM_TAB = MarketingComponentType.PREMIUM_TAB;
const value15 = Reflect.apply(usePromotionMarketingComponent, UsePromotionMarketingComponentModule, [PREMIUM_TAB]);
const useSelectedSnowflakeBoundDismissibleContent = UseSelectedDismissibleContentModule.useSelectedSnowflakeBoundDismissibleContent;
if (value8 != value15) {
properties = value15.properties;
properties = properties.properties;
PREMIUM_TAB_MARKETING_MOMENT_OFFER_BADGE = properties.oneofKind !== 'premiumTab' ? value8 : (require(1365) /* metro dependency 1365: dismissible_content */).DismissibleContent.PREMIUM_TAB_MARKETING_MOMENT_OFFER_BADGE;
} else {
PREMIUM_TAB_MARKETING_MOMENT_OFFER_BADGE = value8;
}
const promotionId = value8 == value15 ? value2 : value15.promotionId;
const value18 = Module00057(Reflect.apply(useSelectedSnowflakeBoundDismissibleContent, UseSelectedDismissibleContentModule,
[PREMIUM_TAB_MARKETING_MOMENT_OFFER_BADGE, value8 != promotionId ? promotionId : '', value2, true]), 2);
const property3 = value18[0];
value18[1];
if (value8 != value15) {
properties = value15.properties;
properties = properties.properties;
if (properties.oneofKind === 'premiumTab') {
PREMIUM_TAB_MARKETING_MOMENT_OFFER_BADGE = (require(1365) /* metro dependency 1365: dismissible_content */).DismissibleContent.PREMIUM_TAB_MARKETING_MOMENT_OFFER_BADGE;
properties = value15.properties;
properties = properties.properties;
premiumTab = properties.premiumTab;
badgeLabel = premiumTab.badgeLabel;
properties = value15.properties;
properties = properties.properties;
premiumTab = properties.premiumTab;
return (
<OfferBadge
acked={property3 !== PREMIUM_TAB_MARKETING_MOMENT_OFFER_BADGE}
badgeCopy={badgeLabel}
ackedBadgeCopy={premiumTab.acknowledgedBadgeLabel}
componentId={value15.id}
/>
);
}
}
const REFERRAL_TRIAL_MOBILE_NITRO_HOME_BADGE = DismissibleContent.REFERRAL_TRIAL_MOBILE_NITRO_HOME_BADGE;
const r17 = property === REFERRAL_TRIAL_MOBILE_NITRO_HOME_BADGE ? intl.string((require(1244) /* metro dependency 1244: indexNative */).t.uO4bXn) : property2 !== (require(1365) /* metro dependency 1365: dismissible_content */).DismissibleContent.WHATS_NEW_TENURE_BADGE_REWARD ? value8 : intl.string((require(1244) /* metro dependency 1244: indexNative */).t['jyYgZ+']);
if (value13) {
if (value14) {
if (r1) {
defaultImport3 = importDefault(4589) /* metro dependency 4589 */;
var defaultImport3Props2 = {style: styles.tag, colors: Gradients.PREMIUM_TIER_2,
start: HorizontalGradient.START,
end: HorizontalGradient.END};
moduleValue12 = require(477) /* metro dependency 477: PlatformUtils */;
r1 = ((Component) => <Component {...defaultImport3Props2}><Text variant="eyebrow" color="always-white" style={moduleValue12.isAndroid() ? styles.text : value2}>{intl.string((require(1244) /* metro dependency 1244: indexNative */).t.y2b7CA)}</Text></Component>)(defaultImport3);
} else if (value8 != value3) {
var offerBadgeBindingProps = {acked: value8 != (value8 == value3 ? value2 : value3.expires_at)};
string = intl.string;
OS9KPu = t.OS9KPu;
offerBadgeBindingProps.badgeCopy = Reflect.apply(string, intl, [OS9KPu]);
string = intl.string;
OS9KPu = t.OS9KPu;
offerBadgeBindingProps.ackedBadgeCopy = Reflect.apply(string, intl, [OS9KPu]);
r1 = <OfferBadge {...offerBadgeBindingProps} />;
} else if (value8 != value4) {
if (value4.hasAcknowledged()) {
var viewProps = {style: [styles.premiumDiscountBadge, styles.ackedBadge]};
var iconProps = {source: importDefault(13495) /* metro dependency 13495 */,
size: (require(1305) /* metro dependency 1305: native */).Icon.Sizes.EXTRA_SMALL};
icon = styles.icon;
iconProps.color = icon.color;
icon = styles.icon;
iconProps.style = icon;
items2 = [
<Icon {...iconProps} />,
];
items2[1] = (
<Text
variant="eyebrow"
color="interactive-text-default"
style={styles.text}
>
{intl.string((require(1244) /* metro dependency 1244: indexNative */).t['/DTtr6'])}
</Text>
);
r2 = (
<View {...viewProps}>
{items2}
</View>
);
} else {
r2 = ((Component) => <Component style={styles.premiumDiscountBadge} colors={['#db00a4',
'#5968f0']} start={HorizontalGradient.START} end={HorizontalGradient.END}><Text variant="eyebrow" color="always-white" style={styles.text}>{intl.string((require(1244) /* metro dependency 1244: indexNative */).t['/DTtr6'])}</Text></Component>)(importDefault(4589) /* metro dependency 4589 */);
}
r1 = r2;
} else if (value8 != r17) {
defaultImport = importDefault(4589) /* metro dependency 4589 */;
var defaultImportProps2 = {style: styles.tag, colors: Gradients.PREMIUM_TIER_2,
start: HorizontalGradient.START,
end: HorizontalGradient.END};
value = require(477) /* metro dependency 477: PlatformUtils */;
value = ((Component) => <Component {...defaultImportProps2}><Text variant="eyebrow" color="always-white" style={value.isAndroid() ? styles.text : value2}>{r17}</Text></Component>)(defaultImport);
r1 = value;
} else {
r1 = value8;
}
r0 = r1;
} else {
r0 = <ThemedTabBadge label={intl.string((require(1244) /* metro dependency 1244: indexNative */).t.RDE0Sc)} />;
}
} else {
if (r1) {
defaultImport3 = importDefault(4589) /* metro dependency 4589 */;
var defaultImport3Props2 = {style: styles.tag, colors: Gradients.PREMIUM_TIER_2,
start: HorizontalGradient.START,
end: HorizontalGradient.END};
moduleValue12 = require(477) /* metro dependency 477: PlatformUtils */;
r1 = ((Component) => <Component {...defaultImport3Props2}><Text variant="eyebrow" color="always-white" style={moduleValue12.isAndroid() ? styles.text : value2}>{intl.string((require(1244) /* metro dependency 1244: indexNative */).t.y2b7CA)}</Text></Component>)(defaultImport3);
} else if (value8 != value3) {
var offerBadgeBindingProps = {acked: value8 != (value8 == value3 ? value2 : value3.expires_at)};
string = intl.string;
OS9KPu = t.OS9KPu;
offerBadgeBindingProps.badgeCopy = Reflect.apply(string, intl, [OS9KPu]);
string = intl.string;
OS9KPu = t.OS9KPu;
offerBadgeBindingProps.ackedBadgeCopy = Reflect.apply(string, intl, [OS9KPu]);
r1 = <OfferBadge {...offerBadgeBindingProps} />;
} else if (value8 != value4) {
if (value4.hasAcknowledged()) {
var viewProps = {style: [styles.premiumDiscountBadge, styles.ackedBadge]};
var iconProps = {source: importDefault(13495) /* metro dependency 13495 */,
size: (require(1305) /* metro dependency 1305: native */).Icon.Sizes.EXTRA_SMALL};
icon = styles.icon;
iconProps.color = icon.color;
icon = styles.icon;
iconProps.style = icon;
items2 = [
<Icon {...iconProps} />,
];
items2[1] = (
<Text
variant="eyebrow"
color="interactive-text-default"
style={styles.text}
>
{intl.string((require(1244) /* metro dependency 1244: indexNative */).t['/DTtr6'])}
</Text>
);
r2 = (
<View {...viewProps}>
{items2}
</View>
);
} else {
r2 = ((Component) => <Component style={styles.premiumDiscountBadge} colors={['#db00a4',
'#5968f0']} start={HorizontalGradient.START} end={HorizontalGradient.END}><Text variant="eyebrow" color="always-white" style={styles.text}>{intl.string((require(1244) /* metro dependency 1244: indexNative */).t['/DTtr6'])}</Text></Component>)(importDefault(4589) /* metro dependency 4589 */);
}
r1 = r2;
} else if (value8 != r17) {
defaultImport = importDefault(4589) /* metro dependency 4589 */;
var defaultImportProps2 = {style: styles.tag, colors: Gradients.PREMIUM_TIER_2,
start: HorizontalGradient.START,
end: HorizontalGradient.END};
value = require(477) /* metro dependency 477: PlatformUtils */;
value = ((Component) => <Component {...defaultImportProps2}><Text variant="eyebrow" color="always-white" style={value.isAndroid() ? styles.text : value2}>{r17}</Text></Component>)(defaultImport);
r1 = value;
} else {
r1 = value8;
}
r0 = r1;
}
return r0;
}
}
global.__d(_fun102544, 13494, [57, 31, 27, 3808, 1880, 7047, 33, 4501, 697, 4002, 4048, 4573, 8742, 480, 7583, 1305,
13495, 7062, 7258, 3802, 3968, 1365, 566, 7013, 7559, 8314, 7582, 1244, 4589, 676, 477,
2]) /* metro module 13494, dependencies: [57, 31, 27, 3808, 1880, 7047, 33, 4501, 697, 4002, 4048, 4573, 8742, 480, 7583, 1305, 13495, 7062, 7258, 3802, 3968, 1365, 566, 7013, 7559, 8314, 7582, 1244, 4589, 676, 477, 2] */;