// 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 ; } if (CTATypes.IS_MEMBER === ctaType) { return