107 lines
6.0 KiB
TypeScript
107 lines
6.0 KiB
TypeScript
// Metro module 15003 (f15004).
|
|
import * as Module19 from "react";
|
|
import { useMemo } from "react";
|
|
import UserGuildJoinRequestStore from "../../guild_member_verification/UserGuildJoinRequestStore";
|
|
import { getGuildIconSource, getGuildIconURL } from "../../../records/GuildRecord";
|
|
import SelectedGuildStore from "../../../stores/SelectedGuildStore";
|
|
import SortedGuildStore from "../../../stores/SortedGuildStore";
|
|
import { createStyles } from "../../../design/components/Styles/native/createStyles";
|
|
import Module712 from "../../../_bundle/Module712";
|
|
import GuildsBarAnimatedItemWrapper, { useGuildsBarAnimatedWrapperStyles } from "./GuildsBarAnimatedItemWrapper";
|
|
import { useToken } from "../../../design/tokens/native/useToken";
|
|
import { useStateFromStores } from "../../../_bundle/Module589";
|
|
import GuildIcon, { ImageSizes, GuildIconSizes } from "../../guild/native/GuildIcon";
|
|
import isGuildsBarGuildDataEqual from "./utils/isGuildsBarGuildDataEqual";
|
|
import useGuildsBarBottomRightBadge from "./hooks/useGuildsBarBottomRightBadge";
|
|
import { GuildJoinRequestApplicationStatuses } from "../../guild_member_verification/MemberVerificationTypes";
|
|
import { openMemberVerificationIncompleteAlert, openMemberVerificationPendingAlert, openMemberVerificationRejectedAlert } from "../../guild_member_verification/native/MemberVerificationAlertActionCreators";
|
|
import transitionGuildsBarToGuildOrOpenSelectedChannel from "./utils/transitionGuildsBarToGuildOrOpenSelectedChannel";
|
|
import usePreloadedGuildAsset from "./hooks/usePreloadedGuildAsset";
|
|
import getGuildsBarGuildMenuItems from "./utils/getGuildsBarGuildMenuItems";
|
|
import { useSharedValue } from "../../reanimated/ReanimatedRexport";
|
|
import HomeDrawerGuildRow from "../../home_drawer/native/HomeDrawerGuildRow";
|
|
import FastImage from "../../../components_native/common/FastImage";
|
|
const useStyles = createStyles({
|
|
guildIcon: {
|
|
width: Module712.modules.mobile.GUILD_BAR_ITEM_SIZE,
|
|
height: Module712.modules.mobile.GUILD_BAR_ITEM_SIZE
|
|
}
|
|
});
|
|
const r46 = Module19.memo(function GuildsBarPendingGuild(props) {
|
|
let stateFromStores2, stateFromStores3;
|
|
const guildId = props.guildId;
|
|
stateFromStores2 = void 0;
|
|
stateFromStores3 = void 0;
|
|
const styles = useStyles();
|
|
const styles2 = useGuildsBarAnimatedWrapperStyles({
|
|
disableSelectedColor: true,
|
|
disableBGColor: true
|
|
});
|
|
const token = useToken(Module712.modules.mobile.GUILD_BAR_ITEM_SIZE);
|
|
const stateFromStores = useStateFromStores([SelectedGuildStore], () => SelectedGuildStore.getGuildId() === guildId, [guildId]);
|
|
stateFromStores2 = useStateFromStores([UserGuildJoinRequestStore], () => UserGuildJoinRequestStore.getRequest(guildId), [guildId]);
|
|
const stateFromStores4 = useStateFromStores([UserGuildJoinRequestStore], () => {
|
|
const joinRequestGuild = UserGuildJoinRequestStore.getJoinRequestGuild(guildId);
|
|
const icon = joinRequestGuild != null ? getGuildIconURL(joinRequestGuild, token, stateFromStores) : void 0;
|
|
return {
|
|
guildName: joinRequestGuild?.name,
|
|
icon,
|
|
asset: icon != null ? joinRequestGuild != null ? getGuildIconSource(joinRequestGuild, ImageSizes[GuildIconSizes.LARGE], stateFromStores) : void 0 : void 0
|
|
};
|
|
}, [guildId, token, stateFromStores], isGuildsBarGuildDataEqual);
|
|
const { asset, icon, guildName } = stateFromStores4;
|
|
const guildsBarBottomRightBadge = useGuildsBarBottomRightBadge({
|
|
mentionCount: 0,
|
|
joinRequestState: stateFromStores2?.applicationStatus
|
|
});
|
|
const { badge, cutouts } = guildsBarBottomRightBadge;
|
|
const memo = useMemo(() => ({
|
|
onPress: () => {
|
|
const applicationStatus = stateFromStores2?.applicationStatus;
|
|
if (GuildJoinRequestApplicationStatuses.STARTED === applicationStatus) {
|
|
openMemberVerificationIncompleteAlert(guildId);
|
|
} else if (GuildJoinRequestApplicationStatuses.SUBMITTED === applicationStatus) {
|
|
openMemberVerificationPendingAlert(guildId);
|
|
} else if (GuildJoinRequestApplicationStatuses.APPROVED === applicationStatus) {
|
|
transitionGuildsBarToGuildOrOpenSelectedChannel(guildId);
|
|
} else if (GuildJoinRequestApplicationStatuses.REJECTED === applicationStatus) {
|
|
openMemberVerificationRejectedAlert({
|
|
guildId,
|
|
canWithdraw: true
|
|
});
|
|
}
|
|
}
|
|
}), [guildId, stateFromStores2?.applicationStatus]);
|
|
const preloadedGuildAsset = usePreloadedGuildAsset(guildId, icon, asset);
|
|
stateFromStores3 = useStateFromStores([SortedGuildStore], () => SortedGuildStore.getGuildsTree().version);
|
|
const memo2 = useMemo(() => {
|
|
const guildsBarGuildMenuItems = getGuildsBarGuildMenuItems(guildId, stateFromStores3);
|
|
let c27882_0 = guildsBarGuildMenuItems;
|
|
return {
|
|
accessibilityActions: guildsBarGuildMenuItems.map((guildsBarGuildMenuItem) => ({
|
|
name: guildsBarGuildMenuItem.label,
|
|
label: guildsBarGuildMenuItem.label
|
|
})),
|
|
onAccessibilityAction: (c30817_0) => {
|
|
const r7 = c27882_0.find((item) => item.label === c30817_0.nativeEvent.actionName);
|
|
if (r7 != null) {
|
|
const action = r7.action;
|
|
if (action != null) {
|
|
action.call(r7);
|
|
}
|
|
}
|
|
}
|
|
};
|
|
}, [guildId, stateFromStores3]);
|
|
const { accessibilityActions, onAccessibilityAction: onAccessibilityAction2 } = memo2;
|
|
const sharedValue = useSharedValue(guildId);
|
|
let label = guildName;
|
|
if (label == null) {
|
|
label = "";
|
|
}
|
|
return <GuildsBarAnimatedItemWrapper id={guildId} accessibilityActions={accessibilityActions} onAccessibilityAction={onAccessibilityAction2} cutouts={cutouts} selected={stateFromStores} sharedId={sharedValue} circle={!stateFromStores} overState={void 0} unread={false} label={label} config={memo} styles={styles2} externalChildren={badge} expandedChildren={<HomeDrawerGuildRow guildId={guildId} disableSubtitle />}>
|
|
{preloadedGuildAsset != null ? <FastImage source={preloadedGuildAsset} style={styles.guildIcon} /> : <GuildIcon value={guildName} selected={stateFromStores} animate={stateFromStores} size={GuildIconSizes.LARGE} />}
|
|
</GuildsBarAnimatedItemWrapper>;
|
|
});
|
|
export default r46;
|