Skip to content
Snippets Groups Projects
Hero.tsx 2.87 KiB
Newer Older
Toavina's avatar
Toavina committed
import React from "react"
Toavina's avatar
Toavina committed
import { Button, Card } from "@onegeo/gatsby-theme-onegeo"

interface Service {
    name: string
    description: string
    image: string
    url: string
}
interface Action {
    name: string
    url: string
}
interface Props {
Toavina's avatar
Toavina committed
    title: string
    subtitle: string
    content: string
Toavina's avatar
Toavina committed
    action: Action
    services: Array<Service>
}

const Hero = (props: Props) => {
Toavina's avatar
Toavina committed
    // Data structure (default value)
    const {
        title = "eGEO Project",
        subtitle = "Hub géospatial collaboratif",
        content = "Solution Open Source sur-mesure pour communiquer et valoriser les données disponibles sur votre territoire ou vos infrastructures.",
Toavina's avatar
Toavina committed
        action = {
            name: "Découvres nos cartes interactives",
            url: "#",
Toavina's avatar
Toavina committed
        },
        services = [
            {
                name: "Datastore",
                description: "Accédez à votre catalogue de données.",
                image: "../images/hero/datastore.png",
                url: "#",
Toavina's avatar
Toavina committed
            },
            {
                name: "Map",
                description:
Toavina's avatar
Toavina committed
                    "Consulter, gérer, mettre à jour et diffuser vos contenus cartographiques.",
                image: "../images/hero/datastore.png",
                url: "#",
Toavina's avatar
Toavina committed
            },
            {
                name: "Dataviz",
                description: "Croisez et mettez en forme vos données.",
                image: "../images/hero/datastore.png",
                url: "#",
Toavina's avatar
Toavina committed
            },
            {
                name: "Contrib",
                description: "Validez et collectez vos informations.",
                image: "../images/hero/datastore.png",
                url: "#",
Toavina's avatar
Toavina committed
            },
        ],
    } = props
Toavina's avatar
Toavina committed
    return (
        <div className="hero min-h-screen bg-[url('../images/fond.png')]">
            {/* <div className="hero-overlay bg-opacity-60"></div> */}
            <div className="hero-content text-center text-neutral-content">
                <div className="max-w-4xl">
                    <h1 className="mb-5 text-3xl lg:text-6xl font-extrabold tracking-tight">
                        {title}
                        <div className="text-primary">{subtitle}</div>
                    </h1>
                    <p className="mb-10">{content}</p>
Toavina's avatar
Toavina committed
                    {action ? (
                        <Button
                            className="btn-primary text-white"
                            {...action}
                        />
                    ) : null}
                </div>
            </div>
            <div className="row-start-2 flex flex-col lg:flex-row gap-6 mx-6">
Tovo Ramontalambo's avatar
Tovo Ramontalambo committed
                {services &&
                    services.map((service, idx) => (
                        <Card key={idx} {...service} />
                    ))}
Toavina's avatar
Toavina committed
            </div>
            <div className="row-start-3">&nbsp;</div>
Toavina's avatar
Toavina committed
    )
}
Toavina's avatar
Toavina committed
export default Hero