Build Neo4j Graph Apps using components and utilities from this graph app kit.
Browse source code and read README:s in sub directories for examples and docs.
Check out the interactive playground for a demo of the components.
Component | Description |
---|---|
<AsciiTable> | Render your data in an text/ascii table with fixed width font. |
<Chart> | Render your data in a chart visualization. |
<Cypher> | A simple component to execute a Cypher query and return the result to your render function. |
<CypherEditor> | A cypher editor component with code highlighting and autocomplete functionality. |
<DesktopIntegration> | Easy integration for your app into the Neo4j Desktop API. Subscribe to events etc. |
<DriverProvider> | Provide your React application with a neo4j-driver in application context. |
<GraphAppBase> | A base component for apps to reduce the amount of boilerplate code for connection handling. Integrates the app with the Neo4j Desktop API and provides the application with a neo4j-driver in application context. |
<Render> | A declarative toggling component to mount / unmount child components under certain conditions. |
npm install graph-app-kit --registry https://neo.jfrog.io/neo/api/npm/npm
// or
yarn add graph-app-kit --registry https://neo.jfrog.io/neo/api/npm/npm
import "semantic-ui-css/semantic.min.css";
import { Cypher } from "graph-app-kit/components/Cypher";
import { DriverProvider } from "graph-app-kit/components/DriverProvider";
import { Render } from "graph-app-kit/components/Render";
import { Chart } from "graph-app-kit/components/Chart";
import { CypherEditor } from "graph-app-kit/components/Editor";
There's an interactive playground to view and modify the components.
This is temporarily hosted at https://styleguide-cqfmjsxkhp.now.sh
Feedback wanted!
To use the playground when developing components: yarn playground
and to
generate a static version to deploy: yarn playground:build
(the artifacts end
up in styleguide/
)
git clone [email protected]:neo4j-apps/graph-app-kit.git graph-app-kit
cd graph-app-kit
yarn install
The preferred way to develop new components is to either develop it directly in
src/dev/Component
or import there.
To start dev server on http://localhost:3000/ (loads src/dev/index.js
in webpack):
yarn start
To have continous testing (add tests to src/dev/Component.test.js
): yarn dev
Here's a checklist for things to be done before opening a PR with a new component:
- Restore
src/dev
to it's initial state. - Name the component file
ComponentName.js
and the test fileComponentName.test.js
. - Export the component as a named export + a default export. Named for the kit users and default for placing it in the playground.
- Add an
index.js
in the components directory, which just exports the named import. i.e.export { ComponentName } from './ComponentName'
. - Execute
yarn test
and make sure the test coverage for the component is reasonable. - Add a
README.md
in the components directory where you showcase one (or more) example usages and instructions of the component. - Execute
yarn playground
to see it in action. Make sure it looks good and makes sense. - Add an import test for the component in
test_package/react/package.test.js
ANDtest_package/preact/preact.test.js
. Executeyarn test:package
and watch it fail. - Add the component to the file
conf/kit_exports.js
. Follow the named / path convention. - Execute
yarn test:package
again and watch it pass. - Open a PR and wait for praise.
yarn lint
Single run:
yarn test
// or for including production bundle tests
yarn test:all
Continous testing (watch mode):
yarn dev