// Metro module 15363 (f15364).
import { useMemo, useCallback } from "react";
import { View } from "react-native";
import ChannelStore from "../../../stores/ChannelStore";
import GuildMemberStore from "../../../stores/GuildMemberStore";
import GuildStore from "../../../stores/GuildStore";
import { DEFAULT_ROLE_COLOR_HEX } from "../../../Constants";
import { createICYMIStyles } from "./createICYMIStyles";
import Module712 from "../../../_bundle/Module712";
import ClipView, { CutoutShape } from "../../../design/components/Icon/native/ClipView";
import GuildIcon, { GuildIconSizes } from "../../guild/native/GuildIcon";
import { Avatar, AvatarSizes } from "../../../design/void/native";
import { useFontScale } from "../../screen/native/useFontScale";
import { useStateFromStores } from "../../../_bundle/Module589";
import useDisplayNameStyles from "../../display_name_styles/hooks/useDisplayNameStyles";
import { useDisplayNameStylesFont } from "../../display_name_styles/native/useDisplayNameStylesFont";
import { useName } from "../../../utils/NicknameUtils";
import { Text } from "../../../design/components/Text/native/Text";
import useChannelName from "../../channel/useChannelName";
import { getIconForChannel } from "./util/getIconForChannel";
import { intl, t } from "../../../intl/index.native";
import { TextIcon } from "../../../design/components/Icon/native/redesign/generated/TextIcon";
import { openDetailsActionSheet } from "./util/openDetailsActionSheet";
import { PressableHighlight, PressableOpacity } from "../../../design/void/Pressables/native/Pressables";
import { getRelativeTimestamp } from "../../notification_center/NotificationCenterUtils";
import { MoreHorizontalIcon } from "../../../design/components/Icon/native/redesign/generated/MoreHorizontalIcon";
let styles;
const CutoutGuildIconWithUserCustom = function CutoutGuildIconWithUserCustom(props) {
const { guild, author } = props;
return
;
};
styles = createICYMIStyles((a0) => ({
container: {
marginTop: a0.margin
},
content: {
flex: 1,
overflow: "hidden"
},
channelNameAndAccessory: {
flexDirection: "row",
justifyContent: "space-between",
alignItems: "center",
paddingBottom: Module712.space.PX_4,
marginHorizontal: a0.margin
},
channelNameAndAccessoryLarge: {
flexDirection: "column",
paddingBottom: Module712.space.PX_4,
marginHorizontal: a0.margin
},
header: {
flexDirection: "row",
flexGrow: 1
},
headerInfo: {
flexGrow: 1,
flexShrink: 1,
marginLeft: Module712.space.PX_12
},
title: {
flexDirection: "row",
alignItems: "center",
justifyContent: "space-between",
marginBottom: 2
},
titleLeft: {
flexShrink: 1,
flexGrow: 0,
flexDirection: "row",
alignItems: "center",
gap: 6
},
subTitleContainer: {
flexDirection: "row",
justifyContent: "space-between",
borderRadius: Module712.radii.sm
},
subtitle: {
flexShrink: 1,
flexGrow: 0,
width: "100%"
},
genContentSubtitle: {
flexDirection: "row",
alignItems: "center",
gap: 2
},
genContentSubtitleChannel: {
flexDirection: "row",
alignItems: "center",
gap: 2,
flex: 1
},
subtitleTrailing: {
paddingVertical: 1
},
separator: {
height: 1,
width: "100%",
backgroundColor: Module712.colors.BORDER_SUBTLE
},
normalContent: {
borderBottomWidth: 1,
borderBottomColor: Module712.colors.BORDER_STRONG,
flexShrink: 0
},
authorAvatar: {
position: "absolute",
right: 0,
bottom: 0
}
}));
export default function ICYMICardInCard(props) {
let guildId, stateFromStores2, stateFromStores3, displayNameStylesFont, name, children;
const { children: children2, message, actionLabel, timestamp, id, interactionType, onHeaderPress, onHeaderLongPress, channelId, guildId: guildId2, hideTimestamp = false, shouldFeatureUser = false } = props;
let c21906_6 = shouldFeatureUser;
guildId = void 0;
stateFromStores2 = void 0;
stateFromStores3 = void 0;
displayNameStylesFont = void 0;
name = void 0;
children = void 0;
const r10 = styles();
let c21906_7 = r10;
const fontScale = useFontScale();
const stateFromStores = useStateFromStores([ChannelStore], () => ChannelStore.getChannel(channelId), [channelId]);
let r30 = stateFromStores?.guild_id;
if (r30 == null) {
r30 = guildId2;
}
guildId = r30;
stateFromStores2 = useStateFromStores([GuildStore], () => guildId != null ? GuildStore.getGuild(guildId) : null, [guildId]);
stateFromStores3 = useStateFromStores([GuildMemberStore], () => c21906_6 ? guildId != null ? (message == null ? void 0 : message.author.id) != null ? GuildMemberStore.getMember(guildId, message.author.id) : null : null : null, [shouldFeatureUser, guildId, message]);
displayNameStylesFont = useDisplayNameStylesFont({
displayNameStyles: useDisplayNameStyles({
userId: message == null ? void 0 : message.author?.id
})
});
const name2 = useName(guildId, stateFromStores?.id, message?.author);
name = shouldFeatureUser ? message?.author != null ? guildId != null ? stateFromStores != null ? name2 : null : null : null : null;
const memo = useMemo(() => stateFromStores2 == null ? null : c21906_6 ? message?.author != null ? : : , [stateFromStores2, shouldFeatureUser, message?.author]);
const memo2 = useMemo(() => stateFromStores2 != null ? {stateFromStores2.name} : null, [stateFromStores2]);
children = useChannelName(stateFromStores);
const memo3 = useMemo(() => {
if (c21906_6 && message?.author != null && guildId != null && stateFromStores != null && name != null) {
let color = stateFromStores3?.colorString;
if (color == null) {
color = DEFAULT_ROLE_COLOR_HEX;
}
const IconForChannel = getIconForChannel(stateFromStores);
return
{name.length > 20 ? `${name.slice(0, 17)}...` : name}
{intl.string(t.CHUAYk)}
{children}
;
}
const Component = stateFromStores != null ? getIconForChannel(stateFromStores) : TextIcon;
return
{actionLabel}
{stateFromStores != null ? <>
{intl.string(t.CHUAYk)}
{children}
> : null}
;
}, [shouldFeatureUser, message?.author, guildId, stateFromStores, children, name, stateFromStores3, displayNameStylesFont, r10.genContentSubtitle, r10.genContentSubtitleChannel, onHeaderPress, actionLabel]);
const callback = useCallback(() => {
if (stateFromStores2 != null && stateFromStores != null) {
openDetailsActionSheet({
guildId: stateFromStores2.id,
channelId: stateFromStores.id,
id,
type: interactionType
});
}
}, [stateFromStores2, stateFromStores, id, interactionType]);
return
fontScale > 1.8 ? c21906_7.channelNameAndAccessoryLarge : c21906_7.channelNameAndAccessory, [fontScale, r10.channelNameAndAccessoryLarge, r10.channelNameAndAccessory])}>
{memo}
{memo2}
{hideTimestamp ? !hideTimestamp :
{getRelativeTimestamp(timestamp)}
}
{memo3}
{children2}
;
};