Newer
Older
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"
layout?: "row" | "col" | "grid"
size?: "xs" | "base" | "xl"
action?: {
name?: string
url?: string
classname?: string
}
const { title, action, anime, layout = "row", size = "xs" } = props
const options = props.options ?? {}
const oClass = options.class || {}
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
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,
<div data-theme={options.theme} className={twMerge(oClass.main)}>
<TitleComponent
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>