import React, { ReactNode } from "react";

import { Button } from "./Button";
import { EventSetting } from "./EventSetting";
import { Image } from "./Image";

import styles from "./EventCard.module.css";

interface EventCardProps {
  name: string;
  short: string;
  date: Date;
  online: boolean;
  location: string;
  poster?: string;
  registerLink?: string;
  children: ReactNode;
}

export function EventCard({
  name,
  date,
  online,
  location,
  poster,
  registerLink,
  children,
}: EventCardProps) {
  return (
    <article className={styles.card}>
      <aside>
        {poster && <Image alt={name} src={poster} />}
        {!poster && <div className={styles.spacer}></div>}
        {registerLink && (
          <Button
            isLink={true}
            href={registerLink}
            size="small"
            className={styles.registerButton}
          >
            Register
          </Button>
        )}
      </aside>
      <section className={styles.content}>
        <h1>{name}</h1>
        <h2>
          <EventSetting date={date} online={online} location={location} />
        </h2>
        <div>{children}</div>
      </section>
    </article>
  );
}
