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

109 lines
3.6 KiB
TypeScript

// Metro module 11795 (f11796).
import { setAllowEmail, setAllowSync, setName, useContactSyncModalStore } from "../../contact_sync/native/ContactSyncModalStore";
import ConnectedAccountsStore from "../../../stores/ConnectedAccountsStore";
import UserStore from "../../../stores/UserStore";
import { NUF_DISCOVERABILITY_MODAL_KEY } from "../NUFConstants";
import { PlatformTypes } from "../../../Constants";
import { IN_APP_GUILD_TEMPLATES_MODAL_KEY } from "../../create_guild/native/CreateGuildConstants";
import Dispatcher from "../../../Dispatcher";
import ModalActionCreators from "../../../actions/ModalActionCreators";
import HubEmailConnectionModalActionCreators from "../../hub/native/components/HubEmailConnectionModalActionCreators";
import { setNewUserFlowCompleted } from "../NUFActionCreators";
import { ModalAnimation } from "../../../ConstantsIOS";
import * as _ContactSyncUtils from "../../contact_sync/native/ContactSyncUtils";
import { uploadContacts } from "../../contact_sync/native/ContactSyncUtils";
import ContactSyncActionCreators from "../../contact_sync/native/ContactSyncActionCreators";
export function startOnboarding() {
Dispatcher.dispatch({
type: "ONBOARDING_START"
});
}
export function nextOnboardingStep({ skip = false, skipAttempt = false }) {
Dispatcher.dispatch({
type: "ONBOARDING_STEP",
skip,
skipAttempt
});
}
export function previousOnboardingStep() {
Dispatcher.dispatch({
type: "ONBOARDING_STEP",
back: true
});
}
export function transitionToNUFGuildTemplatesModal(c19176_0) {
ModalActionCreators.pushLazy(async () => {
let c27168_1;
c27168_1 = void 0;
let c30451_0 = (await import("./components/NUFGuildTemplates")).default;
c30451_0.modalConfig = {
animation: c19176_0
};
return c30451_0;
}, {}, IN_APP_GUILD_TEMPLATES_MODAL_KEY);
}
export function transitionToHubEmailConnectionModal(a0, displayStudentPrompt = false) {
HubEmailConnectionModalActionCreators.open({
onCloseExtra: (a0) => {
if (a0) {
setNewUserFlowCompleted();
} else {
Dispatcher.dispatch({
type: "ONBOARDING_STEP"
});
}
},
displayStudentPrompt
}, a0);
}
export function openDiscoverabilityModal() {
ModalActionCreators.pushLazy(async () => {
let c27169_1;
c27169_1 = void 0;
let c30452_0 = (await import("./components/DiscoverabilityModal")).default;
c30452_0.modalConfig = {
animation: ModalAnimation.SLIDE_IN_OUT
};
return c30452_0;
}, {}, NUF_DISCOVERABILITY_MODAL_KEY);
}
export function closeDiscoverabilityModal(a0) {
ModalActionCreators.popWithKey(NUF_DISCOVERABILITY_MODAL_KEY);
Dispatcher.dispatch({
type: "ONBOARDING_STEP",
skip: a0
});
}
export async function startContactSyncForDiscoverability(name) {
let c27167_1;
c27167_1 = void 0;
const phone = UserStore.getCurrentUser()?.phone;
const isContactSyncEnabled = _ContactSyncUtils.isContactSyncEnabled(ConnectedAccountsStore.getLocalAccount(PlatformTypes.CONTACTS));
if (phone == null) {
throw new Error("Cannot start contact sync without a phone number");
}
setName(name);
await ContactSyncActionCreators.updateContactSyncEnabled({
enabled: isContactSyncEnabled,
name
});
await uploadContacts("[]", true);
}
export function toggleDiscoverabilityForUser() {
const phone = UserStore.getCurrentUser()?.phone;
const state = useContactSyncModalStore.getState();
let allowPhone = state.allowPhone;
const allowEmail = state.allowEmail;
if (!allowPhone) {
allowPhone = allowEmail;
}
if (phone != null) {
setAllowSync(!allowPhone);
} else {
setAllowSync(false);
if (!allowPhone) {
setAllowEmail(true);
}
}
}