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

203 lines
6.9 KiB
TypeScript

// Metro module 16257 (f16258).
import PhoneStore from "../../phone/PhoneStore";
import ConnectedAccountsStore from "../../../stores/ConnectedAccountsStore";
import UserStore from "../../../stores/UserStore";
import NewUserStore from "../NewUserStore";
import { NewUserTypes } from "../NUFConstants";
import { PlatformTypes } from "../../../Constants";
import { HUBS_IN_ONBOARDING_COUNTRIES } from "../../hub/HubConstants";
import { openAddAvatarModal } from "../../avatar/native/AddAvatarModalActionCreators";
import { openContactSyncModalOnboarding } from "../../contact_sync/native/ContactSyncModalActionCreators";
import { openDiscoverabilityModal, transitionToHubEmailConnectionModal, transitionToNUFGuildTemplatesModal } from "./NUFActionCreators";
import { ModalAnimation } from "../../../ConstantsIOS";
import { hasDeferredInvite } from "../../instant_invite/native/InstantInviteUtils";
import Dispatcher from "../../../Dispatcher";
import AutomaticLifecycleManager from "../../../lib/AutomaticLifecycleManager";
import { trackNUFStep } from "./NewUserAnalyticsUtils";
import { setNewUserFlowCompleted } from "../NUFActionCreators";
const r36 = {
REGISTRATION: "Registration",
ADD_AVATAR: "Add Avatar",
CONTACT_SYNC: "Contact Sync",
GUILD_TEMPLATE: "Guild Template",
STUDENT_HUB: "Student Hub",
NEW_USER_INTENT: "New User Intent",
ACCEPT_INVITE: "Accept Invite",
DISCOVERABILITY: "Discoverability"
};
let c11685_11 = [{
key: r36.ADD_AVATAR,
shouldShowStep: () => UserStore.getCurrentUser()?.avatar == null,
transitionToStep: openAddAvatarModal
}, {
key: r36.DISCOVERABILITY,
shouldShowStep: () => ConnectedAccountsStore.getLocalAccount(PlatformTypes.CONTACTS) == null,
transitionToStep: openDiscoverabilityModal
}, {
key: r36.CONTACT_SYNC,
shouldShowStep: () => {
const friendSync = ConnectedAccountsStore.getLocalAccount(PlatformTypes.CONTACTS)?.friendSync;
return friendSync ? !friendSync : UserStore.getCurrentUser()?.phone != null;
},
transitionToStep: openContactSyncModalOnboarding
}, {
key: r36.STUDENT_HUB,
shouldShowStep: () => {
if (NewUserStore.getType() !== NewUserTypes.ORGANIC_REGISTERED) {
return false;
}
return HUBS_IN_ONBOARDING_COUNTRIES.includes(PhoneStore.getCountryCode()?.alpha2);
},
transitionToStep: () => {
transitionToHubEmailConnectionModal(ModalAnimation.SLIDE_IN, true);
}
}, {
key: r36.GUILD_TEMPLATE,
shouldShowStep: () => NewUserStore.getType() === NewUserTypes.ORGANIC_REGISTERED,
transitionToStep: () => transitionToNUFGuildTemplatesModal(ModalAnimation.SLIDE_IN)
}, {
key: r36.ACCEPT_INVITE,
shouldShowStep: hasDeferredInvite,
transitionToStep: () => {
Dispatcher.dispatch({
type: "DEFERRED_INVITE_SHOW"
});
}
}];
class NewUserManager extends AutomaticLifecycleManager {
constructor() {
let c22926_0, c22926_1;
super(...arguments);
const _this = this;
this._onboardingStepIndex = -1;
this._lastStep = null;
this.actions = {
ONBOARDING_STEP: (a0) => {
_this.handleOnboardingStep(a0);
}
};
c22926_0 = void 0;
c22926_1 = this;
c22926_0 = async (c31010_0) => {
let r10, back, skipAttempt;
let key, key2, c31010_4;
let c31804_0, c31804_1, c31804_2, c31804_3, c31804_4, c31804_5, c31804_6, c31804_7, c31804_8, c31804_9, c31804_10;
L37: {
L32: {
L16: {
L13: {
L14: {
L10: {
c31010_4 = void 0;
c31804_0 = void 0;
c31804_1 = void 0;
c31804_2 = void 0;
r10 = c31010_0;
const skip = r10.skip;
if (skip !== void 0) {
c31804_0 = skip;
skipAttempt = r10.skipAttempt;
if (skipAttempt !== void 0) {
break L10;
}
} else {
c31804_0 = false;
skipAttempt = r10.skipAttempt;
if (skipAttempt !== void 0) {
break L10;
}
}
c31804_1 = false;
back = r10.back;
if (back !== void 0) {
break L13;
}
break L14;
}
c31804_1 = skipAttempt;
back = r10.back;
if (back !== void 0) {
break L13;
}
}
c31804_2 = false;
c31804_3 = void 0;
c31804_4 = void 0;
c31804_5 = void 0;
c31804_6 = void 0;
c31804_7 = void 0;
c31804_8 = void 0;
c31804_9 = void 0;
c31804_10 = void 0;
break L16;
}
c31804_2 = back;
c31804_3 = void 0;
c31804_4 = void 0;
c31804_5 = void 0;
c31804_6 = void 0;
c31804_7 = void 0;
c31804_8 = void 0;
c31804_9 = void 0;
c31804_10 = void 0;
}
await void 0;
c31804_3 = c22926_1._onboardingStepIndex;
if (c31804_2) {
const key3 = c11685_11[c31804_3]?.key;
key = key3;
if (key3 == null) {
key = null;
}
c22926_1._lastStep = key;
c22926_1._onboardingStepIndex = c22926_1._onboardingStepIndex - 1;
c31804_4 = c11685_11[c22926_1._onboardingStepIndex];
c31804_5 = c31804_4.key;
c31804_6 = c31804_4.transitionToStep;
trackNUFStep(c22926_1._lastStep, c31804_5, {
back: true
});
(0, c31804_6)();
break L37;
}
c22926_1._onboardingStepIndex = c22926_1._onboardingStepIndex + 1;
if (c22926_1._onboardingStepIndex >= c11685_11.length) {
trackNUFStep(c22926_1._lastStep, "NUF Complete", {
skip_attempt: c31804_1
});
setNewUserFlowCompleted();
break L32;
}
c31804_7 = c11685_11[c22926_1._onboardingStepIndex];
c31804_8 = c31804_7.key;
c31804_9 = c31804_7.shouldShowStep;
c31804_10 = c31804_7.transitionToStep;
if (await (0, c31804_9)()) {
trackNUFStep(c22926_1._lastStep, c31804_8, {
skip: c31804_0,
skip_attempt: c31804_1
});
key2 = c11685_11[c31804_3]?.key;
if (key2 == null) {
key2 = null;
}
c22926_1._lastStep = key2;
(0, c31804_10)();
} else {
c22926_1.handleOnboardingStep({
skip: c31804_0
});
}
return void 0;
}
return void 0;
}
};
this.handleOnboardingStep = function() {
return c22926_0.apply(this, arguments);
};
}
}
const newUserManager = new NewUserManager();
export default newUserManager;