import { IoLocationOutline } from 'react-icons/io5' import { trimText } from "src/utils/helperFunctions"; import { Tournament, TournamentEventTypeEnum } from "src/graphql"; import { UnionToObjectKeys } from 'src/utils/types/utils'; import { useAppDispatch, } from "src/utils/hooks"; import { openModal } from "src/redux/features/modals.slice"; import dayjs from 'dayjs'; interface Props { event: Pick } export default function EventCard({ event }: Props) { const dispatch = useAppDispatch() const openEventModal = () => { dispatch(openModal({ Modal: "EventModal", isPageModal: true, props: { event } })) } return (

{event.title}

{`${dayjs(event.starts_at).format('H:mm')} - ${dayjs(event.ends_at).format('H:mm, Do MMM')}`}

{event.location}

{trimText(event.description, 90)}

{mapTypeToBadge[event.type].text}
) } export const mapTypeToBadge: UnionToObjectKeys = { [TournamentEventTypeEnum.TwitterSpace]: { text: "🐦 Twitter space", color: "bg-blue-50 text-blue-500" }, [TournamentEventTypeEnum.Workshop]: { text: "🛠️ Workshop", color: "bg-green-50 text-green-500" }, [TournamentEventTypeEnum.IrlMeetup]: { text: "🤝 IRL meetup", color: "bg-red-50 text-red-500" }, [TournamentEventTypeEnum.OnlineMeetup]: { text: "🤖 Online meetup", color: "bg-violet-50 text-violet-500" }, }