diff --git a/src/.shapes/contact.shex b/src/.shapes/contact.shex index 6d64e39..f74c67e 100644 --- a/src/.shapes/contact.shex +++ b/src/.shapes/contact.shex @@ -1,12 +1,8 @@ - # Platform ontologies: -PREFIX rdf: PREFIX rdfs: -PREFIX owl: PREFIX xsd: -PREFIX dc: -# Domain ontology for Contacts in vcard-like form +# Domain ontology for Contacts in vcard-like form and NextGraph skills PREFIX vcard: PREFIX schem: PREFIX foaf: @@ -31,5 +27,6 @@ ngc:SocialContact EXTRA a { ngc:HasRating { a [ xskills:Rating ]; xskills:rated xsd:integer; - xskills:skill [ ksp:svelte ksp:nextjs ksp:react ksp:vuejs ksp:tailwind ksp:rdf ksp:rust ksp:yjs ksp:automerge ] + xskills:skill [ ksp:svelte ksp:nextjs ksp:react ksp:vuejs ksp:tailwind + ksp:rdf ksp:rust ksp:yjs ksp:automerge ] } \ No newline at end of file diff --git a/src/ContactSimple.tsx b/src/ContactSimple.tsx new file mode 100644 index 0000000..2b336ad --- /dev/null +++ b/src/ContactSimple.tsx @@ -0,0 +1,29 @@ +import { FunctionComponent } from "react"; +import { useNextGraphAuth } from "./reactMethods"; +import { SocialContactShapeType } from "./.ldo/contact.shapeTypes.ts"; +import { useSubscribeToResource, useResource, useSubject } from "./reactMethods.ts"; + +export const Contact: FunctionComponent = ({nuri}) => { + const { session } = useNextGraphAuth(); + + useResource(session.sessionId && nuri ? nuri : undefined, { subscribe: true }); + let contact = useSubject(SocialContactShapeType, session.sessionId && nuri ? nuri.substring(0,53) : undefined); + + if (!session.sessionId || !nuri) return <>; + + return <> + {contact.fn? ( +
+ + {contact.fn} + + + + email: {contact.hasEmail} + +
+ ) : <>} + ; +}; \ No newline at end of file