import React, { useState } from "react"; import "react-responsive-modal/styles.css"; import { Modal } from "react-responsive-modal"; import { useEffect } from "react"; import axios from "axios"; import Loader from "@/components/atoms/Loader"; import initiateDb from "@/utils/dbPublic"; export default function Ecosystem(props) { const [open, setOpen] = useState(false); const onOpenModal = () => setOpen(true); const onCloseModal = () => { setCurrent(false); setImage(null); setName(null); setDescription(null); setUrl(null); setOpen(false); }; const [ecosystem, setEcosystem] = useState(false); const [current, setCurrent] = useState(false); const [image, setImage] = useState(null); const [name, setName] = useState(null); const [description, setDescription] = useState(null); const [url, setUrl] = useState(null); useEffect(() => { (async () => { const supabase = initiateDb(); const data = await supabase .from("ecosystem") .select() .order("created_at", { ascending: false }); setEcosystem(data.data); })(); }, []); async function handleSet(e) { e.preventDefault(); const data = new FormData(); data.append("id", current ? current.id : false); if (image !== null) { data.append("image", image); } data.append("name", name); data.append("description", description); data.append("url", url); const res = await axios.post("/api/ecosystem/set", data); setEcosystem(res.data.data); onCloseModal(); } async function handleDelete(project) { if (confirm("Are you sure to delete the project?")) { const res = await axios.post("/api/ecosystem/delete", { id: project.id, }); setEcosystem(res.data.data); } } const closeIcon = ( ); const customStyles = { content: { borderRadius: "20px", backgroundColor: "black", bgColor: "black", }, }; if (ecosystem === false) { return ; } return (

Ecosystem directory

Powered by Waku

{current ? "Edit" : "Add new"} project

handleSet(e)} className="space-y-3"> setName(e.target.value)} />