UNPKG

sparnatural

Version:

Visual client-side SPARQL query builder and knowledge graph exploration tool

97 lines (80 loc) 2.97 kB
_[Home](index.html) > Use Sparnatural in React_ # Use Sparnatural in React Sparnatural is not published as a seperated React component but it is still possible to use it. However, there are some important need to be considered: - Sparnatural still uses a bit of JQuery current testing hasn't shown any problems but be aware. - Sparnatural might get some CSS problems when resizing. Best is to keep it in a fixed window size If you discover any issues let us know! ## Requirements - download the latest Sparnatural version with `npm install sparnatural` ## Usage ### JSX integration (without YASGUI) ```typescript import './App.css'; import { useEffect, useRef } from 'react'; import "sparnatural" import "sparnatural/dist/sparnatural.css" // import the JSON-LD config file import config from "./config.json" interface SparnaturalEvent extends Event { detail?:{ queryString:string, queryJson:string, querySparqlJs:string } } function App() { const sparnaturalRef = useRef<HTMLElement>(null); useEffect( () => { sparnaturalRef?.current?.addEventListener("queryUpdated", (event:SparnaturalEvent) => { console.log(event?.detail?.queryString); console.log(event?.detail?.queryJson); console.log(event?.detail?.querySparqlJs); // here : don't forget to call expandSparql so that core:sparqlString annotation is taken into account }); }, [], ); return ( <div className="App"> {/*FontAwesome is only needed when the fontawesome features is used to display icons*/} <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.1/css/all.min.css" /> <div id="ui-search" style={{width:"auto"}}> <spar-natural ref={sparnaturalRef} src={JSON.stringify(config)} lang={'en'} defaultLang={'en'} endpoint={'https://fr.dbpedia.org/sparql'} distinct={'true'} limit={'100'} prefix={"skos:http://www.w3.org/2004/02/skos/core# rico:https://www.ica.org/standards/RiC/ontology#"} debug={"true"} /> </div> </div> ); } export default App; ``` ### Add Declaration file for JSX (Typescript only) This is only necesarry when you are using React together with typescript. <br> The declaration file must be call `declaration.d.ts` and be located on the root level of the src/ folder. ```typescript namespace JSX { interface IntrinsicElements { "spar-natural": SparnaturalAttributes; } interface SparnaturalAttributes { ref:React.RefObject<HTMLElement> src: string; lang: string; endpoint: string; distinct: string; limit: string; prefix: string; debug:string } } ``` This shows examplary how to integrate sparnatural inside a React component. For more information on the configuration refer to [Javascript integration v8](Javascript-integration)