Files
discord-decomp/modules/age_assurance/native/ParentalConsentManager.tsx
T
2026-11-01 12:12:55 +02:00

123 lines
4.1 KiB
TypeScript

// Metro module 16284 (f16285).
import UserStore from "../../../stores/UserStore";
import { AnalyticEvents } from "../../../Constants";
import { isMetaQuest } from "../../device/MetaQuestUtils.android";
import { getIsRunningOnSimulator, getSystemVersion } from "../../../utils/native/DeviceUtils";
import { isIOS, getNativePlatform } from "../../../utils/PlatformUtils";
import AutomaticLifecycleManager from "../../../lib/AutomaticLifecycleManager";
import { isParentalConsentCheckEnabled } from "./ParentalConsentExperiment";
import { isNativeAppStoreAgeSignalsEnabled } from "./NativeAppStoreAgeSignalsExperiment";
import * as _AppStoreAgeAssurance_android from "./AppStoreAgeAssurance.android";
import { setAgeRangeThresholds, getIsConsideredOlderThan } from "../../../_bundle/getAndroidPlayAgeRangeStatus";
import { HTTP } from "../../../_bundle/sendRequest";
import AnalyticsUtils from "../../../utils/AnalyticsUtils";
import SentryUtils_native from "../../../utils/SentryUtils.native";
let c11701_6 = 26;
let c11701_7 = 2;
class ParentalConsentManager extends AutomaticLifecycleManager {
actions = {
POST_CONNECTION_OPEN: () => this.onPostConnectionOpen()
};
async onPostConnectionOpen() {
const _this = this;
L14: {
L13: {
if (!isParentalConsentCheckEnabled("ParentalConsentManager")) {
break L14;
}
if (UserStore.getCurrentUser() != null && (function isPlatformSupported() {
if (isMetaQuest()) {
return false;
}
if (getIsRunningOnSimulator()) {
return false;
}
const r23 = getSystemVersion().split(".");
const r26 = parseInt(r23[0], 10);
const r27 = parseInt;
let r28 = r23[1];
if (r28 == null) {
r28 = "0";
}
const r29 = r27(r28, 10);
return isIOS() ? r26 > c11701_6 || r26 === c11701_6 && r29 >= c11701_7 : r26 >= 35;
})()) {
await _this.performAgeCheck();
break L13;
}
break L14;
}
return void 0;
}
}
async performAgeCheck() {
let c28322_2;
let c28322_3 = 0;
let c31023_0, c31023_1, c31023_2, c31023_3, c31023_4;
L17: {
try {
c31023_0 = void 0;
c31023_1 = void 0;
c31023_2 = void 0;
c31023_3 = void 0;
c28322_3 = 1;
if (isNativeAppStoreAgeSignalsEnabled("ParentalConsentManager")) {
c31023_1 = _AppStoreAgeAssurance_android.default;
c31023_2 = await _AppStoreAgeAssurance_android.default.getAgeSignals({
firstAgeGate: 18
});
c31023_0 = await c31023_1.getIsConsideredOlderThan(18, c31023_2);
} else {
if (isIOS()) {
setAgeRangeThresholds([18]);
}
c31023_0 = await getIsConsideredOlderThan(18);
}
c31023_3 = (await HTTP.post({
url: "/users/@me/parental-consent-status",
body: {
platform: getNativePlatform(),
parental_consent: c31023_0
},
rejectWithError: true
})).body.should_block;
AnalyticsUtils.track(AnalyticEvents.PARENTAL_CONSENT_CHECKED, {
eligible: c31023_0,
should_block: c31023_3,
platform: getNativePlatform()
});
c28322_3 = 0;
} catch ($e) {
const r37 = $e;
let r8 = r37;
c28322_2 = r37;
if (c28322_3 !== 0) {
while (true) {
try {
const r190 = c28322_2;
c28322_3 = 0;
c31023_4 = r190;
SentryUtils_native.captureException(c31023_4, {
tags: {
source: "parental_consent_manager",
step: "perform_age_check"
}
});
break L17;
} catch (r186) {
r8 = r186;
c28322_2 = r186;
if (c28322_3 === 0) {
break;
}
}
}
}
throw r8;
}
}
}
}
const parentalConsentManager = new ParentalConsentManager();
export default parentalConsentManager;