107 lines
5.1 KiB
TypeScript
107 lines
5.1 KiB
TypeScript
// Metro module 11956 (f11957).
|
|
import { useCallback, useMemo } from "react";
|
|
import { AnalyticsObjects, JoinGuildSources } from "../../../../Constants";
|
|
import { ProfileCustomizationScrollPositions } from "../../../user_settings/UserSettingsConstants";
|
|
import useGuildProfileCTA, { CTATypes } from "../../hooks/useGuildProfileCTA";
|
|
import useOpenProfileSettings from "../../../profile_customization/useOpenProfileSettings";
|
|
import ActionSheetActionCreators from "../../../action_sheet/native/ActionSheetActionCreators";
|
|
import { transitionToGuild } from "../../../routing/transitionToGuild.native";
|
|
import InstantInviteActionCreators from "../../../../actions/InstantInviteActionCreators";
|
|
import useGetJoinRequestGuild from "../../../guild_member_verification/hooks/useGetJoinRequestGuild";
|
|
import { GuildJoinRequestApplicationStatuses } from "../../../guild_member_verification/MemberVerificationTypes";
|
|
import { openMemberVerificationPendingAlert, openMemberVerificationRejectedAlert, openMemberVerificationIncompleteAlert } from "../../../guild_member_verification/native/MemberVerificationAlertActionCreators";
|
|
import { GuildProfileVisibility } from "../../GuildProfileTypes";
|
|
import { openMemberVerificationModal } from "../../../guild_member_verification/MemberVerificationModalActionCreators";
|
|
import { startLurking } from "../../../../utils/GuildDiscoveryUtils";
|
|
import LurkerServerPreviewJoinButton from "../../../lurker_mode/native/LurkerServerPreviewJoinButton";
|
|
import { Button } from "../../../../design/components/Button/native/Button.native";
|
|
import { intl, t } from "../../../../intl/index.native";
|
|
export default function GuildProfileCTA(props) {
|
|
let callback, c19290_5;
|
|
const { profile, context, inviteKey, isLurkerServerPreview = false } = props;
|
|
callback = void 0;
|
|
c19290_5 = void 0;
|
|
const guildProfileCTA = useGuildProfileCTA(profile, context, inviteKey);
|
|
const { guildId, validInviteKey, ctaType } = guildProfileCTA;
|
|
let c19290_3 = useOpenProfileSettings({
|
|
scrollPosition: ProfileCustomizationScrollPositions.GUILD_TAG
|
|
});
|
|
const callback2 = useCallback(() => {
|
|
ActionSheetActionCreators.hideActionSheet(`GuildProfileActionSheet:${guildId}`);
|
|
transitionToGuild(guildId);
|
|
}, [guildId]);
|
|
callback = useCallback(() => {
|
|
if (validInviteKey != null) {
|
|
ActionSheetActionCreators.hideActionSheet(`GuildProfileActionSheet:${guildId}`);
|
|
InstantInviteActionCreators.acceptInviteAndTransitionToInviteChannel({
|
|
inviteKey: validInviteKey,
|
|
context: {
|
|
location: "guild_profile"
|
|
}
|
|
});
|
|
}
|
|
}, [guildId, validInviteKey]);
|
|
const getJoinRequestGuild = useGetJoinRequestGuild(guildId);
|
|
c19290_5 = getJoinRequestGuild;
|
|
const callback3 = useCallback(() => {
|
|
const applicationStatus = c19290_5?.applicationStatus;
|
|
if (GuildJoinRequestApplicationStatuses.SUBMITTED === applicationStatus) {
|
|
openMemberVerificationPendingAlert(guildId);
|
|
} else if (GuildJoinRequestApplicationStatuses.REJECTED === applicationStatus) {
|
|
openMemberVerificationRejectedAlert({
|
|
guildId,
|
|
canWithdraw: true
|
|
});
|
|
} else if (GuildJoinRequestApplicationStatuses.STARTED === applicationStatus) {
|
|
openMemberVerificationIncompleteAlert(guildId);
|
|
}
|
|
}, [guildId, getJoinRequestGuild?.applicationStatus]);
|
|
const callback4 = useCallback(() => {
|
|
ActionSheetActionCreators.hideActionSheet(`GuildProfileActionSheet:${guildId}`);
|
|
if (profile.visibility !== GuildProfileVisibility.PUBLIC_WITH_RECRUITMENT && validInviteKey != null) {
|
|
callback();
|
|
} else {
|
|
openMemberVerificationModal(guildId);
|
|
}
|
|
}, [guildId, callback, profile.visibility, validInviteKey]);
|
|
const callback5 = useCallback(() => {
|
|
ActionSheetActionCreators.hideActionSheet(`GuildProfileActionSheet:${guildId}`);
|
|
startLurking(guildId, {
|
|
object: AnalyticsObjects.GUILD_PROFILE
|
|
});
|
|
}, [guildId]);
|
|
const memo = useMemo(() => ({
|
|
grow: true,
|
|
size: "lg",
|
|
variant: "active"
|
|
}), []);
|
|
if (isLurkerServerPreview) {
|
|
return <LurkerServerPreviewJoinButton guildId={guildId} joinSource={JoinGuildSources.GUILD_PROFILE_LURKER} />;
|
|
}
|
|
if (CTATypes.IS_MEMBER === ctaType) {
|
|
return <Button {...memo} onPress={callback2} text={intl.string(t.KLOhbO)} />;
|
|
}
|
|
if (CTATypes.ADOPT_TAG === ctaType) {
|
|
return <Button {...memo} onPress={function handleGoToTagSettings() {
|
|
ActionSheetActionCreators.hideActionSheet(`GuildProfileActionSheet:${guildId}`);
|
|
c19290_3();
|
|
}} text={intl.string(t.cQDYRu)} />;
|
|
}
|
|
if (CTATypes.HAS_APPLICATION === ctaType) {
|
|
return <Button {...memo} onPress={callback3} text={intl.string(t["4yfIDk"])} />;
|
|
}
|
|
if (CTATypes.APPLY_TO_JOIN === ctaType) {
|
|
return <Button {...memo} onPress={callback4} text={intl.string(t["7XdMW2"])} />;
|
|
}
|
|
if (CTATypes.LURK_DISCOVERABLE === ctaType) {
|
|
return <Button {...memo} onPress={callback5} text={intl.string(t.XpeFYr)} />;
|
|
}
|
|
if (CTATypes.JOIN_VIA_INVITE === ctaType) {
|
|
return <Button {...memo} onPress={callback} text={intl.string(t.XpeFYr)} />;
|
|
}
|
|
if (CTATypes.ACCEPT_ROLES === ctaType) {
|
|
return <Button {...memo} onPress={callback} text={intl.string(t.MMlhsr)} />;
|
|
}
|
|
return null;
|
|
};
|