TeselaGen-React-Components
React components shared across teselagen's apps.
Using:
yarn add teselagen-react-components
Add peer-dependencies:
yarn add @blueprintjs/core @blueprintjs/datetime react-addons-css-transition-group react-redux react-select redux
Enhancers:
withDialog
withDialog()(YourComponent) wraps YourComponent in a blueprint Dialog!
First hook up dialog to redux (only need to do this once):
Use the component
In RARE cases where you need to open the dialog programatically, make sure the dialog component is on the page (just don't pass a child component and nothing will appear to be added to the DOM), and call dispatch like:
withDelete, withUpsert, withQuery
They can also be used as functions but you must pass in the apolloClient:
getApolloMethods (query, upsert, delete)
query
upsert
delete
Data Table
Use the
DataTable props
Simple DataTable Demo Src Code
withTableParams (enhancer)
Use withTableParams in conjunction with withQuery
withTableParams returns a prop called tableParams which you can spread like:
Form Components
Development:
Prerequisites
Node.js >= v4 must be installed.
Installation
- Running
npm install
in the components's root directory will install everything you need for development.
Demo Development Server
npm start
will run a development server with the component's demo app at http://localhost:3000 with hot module reloading. You can check the /demo folder for the source code.
Developing linked to another folder: aka lims/hde
//link everything up:
//LIMS EXAMPLE:
cd lims/node_modules/react //this is so we don't have 2 copies of react being used on the front-end (react will throw errors if so)
yarn link
cd teselagen-react-components
yarn link
yarn link react
cd lims
yarn link teselagen-react-components
//HDE EXAMPLE:
cd hde/client/node_modules/react //this is so we don't have 2 copies of react being used on the front-end (react will throw errors if so)
yarn link
cd teselagen-react-components
yarn link
yarn link react
cd hde/client
yarn link teselagen-react-components
//ALWAYS:
//start the auto rebuild:
cd teselagen-react-components
yarn build-watch
Running Tests
-
npm test
will run the tests once. -
npm run test:coverage
will run the tests and produce a coverage report incoverage/
. -
npm run test:watch
will run the tests on every change.
Releasing
npm whoami
you should be teselagen-adminnpm login
teselagen-admin//ask @tnrich or @tgreen or @tgadam for password//devops@teselagen.com- git pull
- npm version patch|minor|major
- npm publish
- git push
Adding custom svg icons
See the demo page for live examples!
open src/customIcons.js
and add a new exported svg with a name of xxxxIcon (you can find the svgs from iconmonstr or flaticon or wherever)
be sure to add it to the demo/src/examples/CustomIcons.js
page to TEST THAT IT WORKS and so that people know it exists!