// Metro module 10191 (f10192).
import * as Module19 from "react";
import { useMemo, useCallback } from "react";
import { View } from "react-native";
import { createChannelRecordFromInvite } from "../../../records/ChannelRecord";
import { Routes } from "../../../Constants";
import { createStyles } from "../../../design/components/Styles/native/createStyles";
import { useGetOrFetchApplication } from "../../applications/useGetOrFetchApplications";
import { useCanUnlinkLobbyChannel } from "../../lobbies/LobbyUtils";
import useShowUnlinkChannelAlert from "../../integration_settings/native/useShowUnlinkChannelAlert";
import AlertActionCreators from "../../../actions/native/AlertActionCreators";
import { intl, t } from "../../../intl/index.native";
import { ArrowSmallRightIcon } from "../../../design/components/Icon/native/redesign/generated/ArrowSmallRightIcon";
import { transitionTo } from "../../routing/router_utils";
import InstantInviteIcons from "./InstantInviteIcons";
import { Card } from "../../../design/components/Card/native/Card.native";
import { Stack } from "../../../design/components/Stack/native/Stack.native";
import GameIcon, { GameIconSizes } from "../../game_detection/native/GameIcon";
import { Text } from "../../../design/components/Text/native/Text";
import { ContextMenu } from "../../../design/components/ContextMenu/native/ContextMenu.native";
import { IconButton } from "../../../design/components/Button/native/IconButton.native";
import { InstantInviteDetails } from "./InstantInviteCode";
import DetailedGuildIdentityUserRow from "../../guild_settings/native/DetailedGuildIdentityUserRow";
import { useInviteActions } from "./InstantInviteUtils";
import InviteRolesDisplay from "../../instant_invite/native/InviteRolesDisplay";
import InstantInviteUsesLabel from "./InstantInviteUsesLabel";
const useStyles = createStyles({
creatorWrapper: {
marginLeft: -16,
marginBottom: -16,
marginTop: 8,
flex: 1
},
gameWrapper: {
flex: 1,
flexDirection: "row",
alignItems: "center",
gap: 8
},
gameText: {
flex: 1
}
});
const r38 = Module19.memo(function({ invite, onInviteRevoked }) {
const styles = useStyles();
const { uses, maxUses } = invite;
const id = invite.guild?.id;
const memo2 = useMemo(() => createChannelRecordFromInvite(invite.channel), [invite]);
const inviteActions = useInviteActions({
invite,
onInviteRevoked
});
const memo = useMemo(() => invite.roles.map((role) => role.id), [invite.roles]);
let r36 = memo.length > 0 && id != null;
const r57 = [
{invite.code}
{({ ref, ...props }) => }
, , , ,];
if (r36) {
r36 = ;
}
r57[2] = r36;
r57[3] =
{invite.inviter?.id != null ? : null}
;
return {r57};
});
export default r38;
export function LinkedChannelInvite(props) {
const channel = props.channel;
const styles = useStyles();
const linked_by = channel.linkedLobby?.linked_by;
const getOrFetchApplication = useGetOrFetchApplication(channel.linkedLobby?.application_id);
const canUnlinkLobbyChannel = useCanUnlinkLobbyChannel(channel);
const id = channel.id;
let r35 = getOrFetchApplication?.name;
if (r35 == null) {
r35 = "";
}
const showUnlinkChannelAlert = useShowUnlinkChannelAlert(id, r35);
let c17756_2 = showUnlinkChannelAlert;
const callback = useCallback(() => {
if (canUnlinkLobbyChannel) {
c17756_2();
} else {
AlertActionCreators.show({
title: intl.string(t.JmUENg),
body: intl.string(t.SrvsML)
});
}
}, [canUnlinkLobbyChannel, showUnlinkChannelAlert]);
return
{getOrFetchApplication?.name}
[{
label: intl.string(t.aW2YlJ),
IconComponent: ArrowSmallRightIcon,
action: () => {
transitionTo(Routes.CHANNEL(channel.guild_id, channel.id));
}
}, {
label: intl.string(t.JmUENg),
iconSource: InstantInviteIcons.revoke,
variant: "destructive",
action: callback
}], [channel.guild_id, channel.id, callback])}>
{({ ref, ...props }) => }
{linked_by != null ? : null}
;
}