import { Box, Flex, IconButton } from '@metafam/ds'; import React, { forwardRef, LegacyRef, ReactElement } from 'react'; import { FaTimes } from 'react-icons/fa'; import { GuildAnnouncements } from '#components/Guild/Section/GuildAnnouncements'; import { GuildHero } from '#components/Guild/Section/GuildHero'; import { GuildLinks } from '#components/Guild/Section/GuildLinks'; import { GuildPlayers } from '#components/Guild/Section/GuildPlayers'; import { CustomTextSection } from '#components/Section/CustomTextSection'; import { EmbeddedUrl } from '#components/Section/EmbeddedUrlSection'; import { GuildFragment } from '#graphql/autogen/hasura-sdk'; import { BoxTypes, createBoxKey, DisplayComponent } from '#utils/boxTypes'; const GuildSectionInner: React.FC< DisplayComponent & { guild: GuildFragment } > = ({ metadata, type, guild, editing = false }) => { switch (type) { case BoxTypes.GUILD_HERO: return ; case BoxTypes.GUILD_PLAYERS: return ; case BoxTypes.GUILD_LINKS: return ; case BoxTypes.GUILD_ANNOUNCEMENTS: return ; case BoxTypes.EMBEDDED_URL: { const { url } = metadata ?? {}; return url ? : null; } case BoxTypes.CUSTOM_TEXT: { const { title, content } = metadata ?? {}; return title && content ? ( ) : null; } default: { return null; } } }; export const GuildSection = forwardRef( ({ metadata, type, guild, editing = false, onRemoveBox }, ref) => { if (!guild) return null; const key = createBoxKey(type, metadata); return ( } w="100%" direction="column" h="auto" minH="100%" boxShadow="md" pos="relative" > {editing && ( )} {editing && type && type !== BoxTypes.GUILD_HERO && ( } _hover={{ color: 'white' }} onClick={() => onRemoveBox?.(key)} onTouchStart={() => onRemoveBox?.(key)} _focus={{ boxShadow: 'none', backgroundColor: 'transparent', }} _active={{ transform: 'scale(0.8)', backgroundColor: 'transparent', }} isRound /> )} ); }, );