Skip to content
Snippets Groups Projects
Events.tsx 5.84 KiB
Newer Older
Toavina Rasoatamindrainy's avatar
Toavina Rasoatamindrainy committed
import React from "react"
import { graphql, useStaticQuery } from "gatsby"

interface Props {
    className?: string
}

const Events = (props: Props) => {
    const dataDirectus = useStaticQuery(graphql`
        query MyQuery {
            directusWithDatePos: directus {
                events(filter: { date_start: { _gte: "now" } }, limit: 3) {
                    id
                    title
                    organization
                    date_start
                    date_end
                    url
                    oranization_url
                }
            }
            directusWithoutDatePos: directus {
                events(filter: { date_start: { _lt: "now" } }, limit: 1) {
                    id
                    title
                    organization
                    date_start
                    date_end
                    url
                    oranization_url
                }
            }
        }
    `)

    const { className = "" } = props
    let events
    if (dataDirectus.directusWithDatePos.events.length > 0) {
        events = dataDirectus.directusWithDatePos.events
    } else {
        events = dataDirectus.directusWithoutDatePos.events
    }

    return (
        <div className={`${className}`}>
            <div className="grid grid-cols-1 lg:grid-cols-2 gap-x-4 gap-y-8">
                <div className="flow-root">
                    <ul className="-mb-8">
                        <li>
                            <div className="relative pb-8">
                                <div className="flex-col">
                                    {events.map((event: any) => {
                                        return (
                                            <div
                                                key={event.id}
                                                className="min-w-0 pt-1.5 flex-1 md:flex justify-between space-x-4 mt-5"
                                            >
                                                <div className="md:flex text-lg whitespace-nowrap">
                                                    <div>
                                                        <span className="h-10 w-10 rounded-full flex items-center justify-center ring-8 ring-white bg-secondary">
                                                            <svg
                                                                xmlns="http://www.w3.org/2000/svg"
                                                                viewBox="0 0 20 20"
                                                                fill="currentColor"
                                                                aria-hidden="true"
                                                                className="h-5 w-5 text-neutral-content"
                                                            >
                                                                <path
                                                                    fillRule="evenodd"
                                                                    d="M6 2a1 1 0 00-1 1v1H4a2 2 0 00-2 2v10a2 2 0 002 2h12a2 2 0 002-2V6a2 2 0 00-2-2h-1V3a1 1 0 10-2 0v1H7V3a1 1 0 00-1-1zm0 5a1 1 0 000 2h8a1 1 0 100-2H6z"
                                                                    clipRule="evenodd"
                                                                ></path>
                                                            </svg>
                                                        </span>
                                                    </div>
                                                    <div className="mt-2 ml-4">
                                                        <a
                                                            href={event.url}
                                                            className="font-medium hover:text-primary"
                                                        >
                                                            {event.title}
                                                        </a>
                                                        {" - "}
                                                        <a
                                                            href={
                                                                event.oranization_url
                                                            }
                                                            className="hover:text-secondary"
                                                        >
                                                            {event.organization}
                                                        </a>
                                                    </div>
                                                </div>

                                                <div className="md:flex text-sm whitespace-nowrap">
                                                    <div className="mr-4 mt-3">
                                                        <span>
                                                            {event.date_start}
                                                        </span>{" "}
                                                        {" au "}
                                                        <span>
                                                            {event.date_end}
                                                        </span>
                                                    </div>
                                                </div>
                                            </div>
                                        )
                                    })}
                                </div>
                            </div>
                        </li>
                    </ul>
                </div>
            </div>
        </div>
    )
}

export default Events