import React, { useState, useEffect } from "react" import CardList from "./core/CardList" import TitleComponent from "./core/TitleComponent" import { twMerge } from "tailwind-merge" import { Button } from "@onegeo-suite/gatsby-theme-onegeo" interface Idata { anime?: boolean layout?: "row" | "col" | "grid" size?: "xs" | "base" | "xl" title?: string action?: { name?: string url?: string classname?: string } options?: any } const Data = (props: Idata) => { const { title, action, anime, layout = "row", size = "xs" } = props const options = props.options ?? {} const oClass = options.class || {} const [data, setData] = useState<any[]>([]) useEffect(() => { setData([ { name: "Action", description: "Action description for the Button", size: "xs", }, { name: "Action", description: "Action description for the Button", size: "xs", }, { name: "Action", description: "Action description for the Button", size: "xs", }, ]) // fetch(`${MAPS_URL}&start=0&limit=${limit}`) // .then((res) => { // if (!res.ok) { // throw new Error(res.statusText) // } // return res.json() // }) // .then((response) => { // const results = response.results // if (results.length) { // setData(results) // } // }) // .catch((e) => { // console.log(e) // }) }, []) if (!data.length) return null const dataCards = data.map((data: any) => { return { name: data.name, description: data.description, // image: `/geoportal/${data.thumbnail}`, size: size, // url: `/geoportal/#/context/Admin/${data.id}`, anime: anime || options.anime, options: options.card, } }) return ( <div data-theme={options.theme} className={twMerge(oClass.main)}> <TitleComponent title={title} className="mb-6 p-2 text-2xl font-extrabold tracking-tight sm:text-3xl" options={options} /> <CardList cards={dataCards} layout={layout} {...options.cards} /> <div className={twMerge("my-8 flex justify-center", oClass.actions)} > {action && <Button {...action} {...options.action} />} </div> </div> ) } export default Data