import React, { useState } from "react"; import CollectionSelection from "./InputSelect/CollectionSelection"; import TagSelection from "./InputSelect/TagSelection"; interface NewLink { name: string; url: string; tags: string[]; collectionId: | { id: string | number; isNew: boolean | undefined; } | object; } export default function () { const [newLink, setNewLink] = useState({ name: "", url: "", tags: [], collectionId: {}, }); const setTags = (e: any) => { const tagNames = e.map((e: any) => { return e.label; }); setNewLink({ ...newLink, tags: tagNames }); }; const setCollection = (e: any) => { const collection = { id: e?.value, isNew: e?.__isNew__ }; setNewLink({ ...newLink, collectionId: collection }); }; const postLink = async () => { const response = await fetch("/api/routes/links", { body: JSON.stringify(newLink), headers: { "Content-Type": "application/json", }, method: "POST", }); const data = await response.json(); console.log(newLink); console.log(data); }; return (

New Link

Name

setNewLink({ ...newLink, name: e.target.value })} type="text" placeholder="e.g. Example Link" className="w-60 rounded p-2 border-sky-100 border-solid border text-sm outline-none focus:border-sky-500 duration-100" autoFocus />

URL

setNewLink({ ...newLink, url: e.target.value })} type="text" placeholder="e.g. http://example.com/" className="w-60 rounded p-2 border-sky-100 border-solid border text-sm outline-none focus:border-sky-500 duration-100" />

Tags

Collection

postLink()} > Add Link
); }