import { FormEvent, FunctionComponent, useCallback, useState } from "react"; import { BrowserNGLdoProvider, useLdo, dataset } from './reactMethods'; import { NGSocialContactShapeType } from "./.ldo/contact.shapeTypes.ts"; import { LdSet } from "@ldo/ldo"; export const MakeContact: FunctionComponent = () => { const [name, setName] = useState(""); const [email, setEmail] = useState(""); const { createData, commitData } = useLdo(); const onSubmit = useCallback( async (e: FormEvent) => { e.preventDefault(); const new_name = name.trim(); const new_email = email.trim(); if (new_name.trim().length > 2 && new_email.trim().length > 6 && new_email.indexOf("@") >= 0) { setName(""); setEmail(""); const resource = await dataset.createResource("nextgraph"); if (!resource.isError) { //console.log("Created resource:", resource.uri); const contact = createData( NGSocialContactShapeType, resource.uri.substring(0,53), resource ); contact.type = { "@id": "Individual" }; contact.fn = new_name; contact.hasEmail = new_email; const result = await commitData(contact); if (result.isError) { console.error(result.message); } } } }, [name, email] ); return (
setName(e.target.value)} /> setEmail(e.target.value)} />
); };