91 lines
4.0 KiB
TypeScript
91 lines
4.0 KiB
TypeScript
// Metro module 15420 (f15421).
|
|
import { useEffect } from "react";
|
|
import ExperimentStore from "../../experiments/ExperimentStore";
|
|
import GuildOnboardingHomeSettingsStore, { NO_SETTINGS } from "../GuildOnboardingHomeSettingsStore";
|
|
import GuildOnboardingMemberActionStore from "../GuildOnboardingMemberActionStore";
|
|
import { AnalyticEvents } from "../../../Constants";
|
|
import { useSharedValue } from "../../reanimated/ReanimatedRexport";
|
|
import { useStateFromStores } from "../../../_bundle/Module589";
|
|
import useIsNewMember from "../useIsNewMember";
|
|
import { fetchGuildHomeSettings } from "../GuildOnboardingHomeActionCreators";
|
|
import AnalyticsUtils from "../../../utils/AnalyticsUtils";
|
|
import { collectGuildAnalyticsMetadata } from "../../app_analytics/AppAnalyticsUtils";
|
|
import GuildActionCreators from "../../../actions/GuildActionCreators";
|
|
import OnboardingHomeScrollView from "./OnboardingHomeScrollView";
|
|
import GuildFeedBanner from "../../guild_home/native/components/GuildFeedBanner";
|
|
import ResourcesRow from "./ResourcesRow";
|
|
import HomeWelcomeMessage from "./HomeWelcomeMessage";
|
|
import GuildOnboardingNewMemberActions from "./GuildOnboardingNewMemberActions";
|
|
import GuildHomeResources from "./GuildHomeResources";
|
|
import { useCanSeeOnboardingHome } from "../OnboardingHomeUtils";
|
|
const GuildOnboardingHomePage = function GuildOnboardingHomePage(props) {
|
|
let c21981_2;
|
|
const guildId = props.guildId;
|
|
c21981_2 = void 0;
|
|
const sharedValue = useSharedValue(-999);
|
|
const stateFromStores = useStateFromStores([GuildOnboardingHomeSettingsStore], () => GuildOnboardingHomeSettingsStore.getSettings(guildId));
|
|
const isNewMember = useIsNewMember(guildId);
|
|
let r2 = !isNewMember;
|
|
if (!isNewMember) {
|
|
let r30 = stateFromStores == null ? void 0 : stateFromStores.resourceChannels?.length;
|
|
if (r30 == null) {
|
|
r30 = 0;
|
|
}
|
|
r2 = r30 === 0;
|
|
}
|
|
c21981_2 = r2;
|
|
useEffect(() => {
|
|
if (stateFromStores === NO_SETTINGS) {
|
|
fetchGuildHomeSettings(guildId);
|
|
} else if (stateFromStores != null) {
|
|
const SERVER_GUIDE_VIEWED = AnalyticEvents.SERVER_GUIDE_VIEWED;
|
|
const r21 = {
|
|
...collectGuildAnalyticsMetadata(guildId)
|
|
};
|
|
let num_member_actions = stateFromStores.newMemberActions?.length;
|
|
if (num_member_actions == null) {
|
|
num_member_actions = 0;
|
|
}
|
|
r21.num_member_actions = num_member_actions;
|
|
const r13 = Object;
|
|
let r31 = GuildOnboardingMemberActionStore.getCompletedActions(guildId);
|
|
if (r31 == null) {
|
|
r31 = {};
|
|
}
|
|
r21.num_member_actions_completed = r13.keys(r31).length;
|
|
let num_resource_channels = stateFromStores.resourceChannels?.length;
|
|
if (num_resource_channels == null) {
|
|
num_resource_channels = 0;
|
|
}
|
|
r21.num_resource_channels = num_resource_channels;
|
|
AnalyticsUtils.track(SERVER_GUIDE_VIEWED, r21);
|
|
}
|
|
}, [guildId, stateFromStores, r2]);
|
|
useEffect(() => {
|
|
if (c21981_2 && stateFromStores !== NO_SETTINGS) {
|
|
GuildActionCreators.escapeToDefaultChannel(guildId);
|
|
}
|
|
}, [guildId, r2, stateFromStores]);
|
|
return r2 ? null : <OnboardingHomeScrollView guildId={guildId} scrollValue={sharedValue}>
|
|
<GuildFeedBanner guildId={guildId} hideDescription={isNewMember} />
|
|
{isNewMember ? <>
|
|
<ResourcesRow guildId={guildId} />
|
|
<HomeWelcomeMessage guildId={guildId} />
|
|
<GuildOnboardingNewMemberActions guildId={guildId} />
|
|
</> : <GuildHomeResources guildId={guildId} />}
|
|
</OnboardingHomeScrollView>;
|
|
};
|
|
export default function GuildOnboardingHomePageGuard(props) {
|
|
let canSeeOnboardingHome;
|
|
const guildId2 = props.guildId;
|
|
canSeeOnboardingHome = void 0;
|
|
const stateFromStores2 = useStateFromStores([ExperimentStore], () => ExperimentStore.hasLoadedExperiments);
|
|
canSeeOnboardingHome = useCanSeeOnboardingHome(guildId2);
|
|
useEffect(() => {
|
|
if (stateFromStores2 && !canSeeOnboardingHome) {
|
|
GuildActionCreators.escapeToDefaultChannel(guildId2);
|
|
}
|
|
}, [guildId2, stateFromStores2, canSeeOnboardingHome]);
|
|
return <GuildOnboardingHomePage guildId={guildId2} />;
|
|
};
|