Awesome
Digital Paper Edit - React Components Catalogue
---> Work in progress <--
! What is published in the Storybook may be different to what is being actively used in Digital-Paper-Edit-Client, as the components are currently being migrated. !
This repository uses storybook to gather the components of the React front end. You can read about the "why" in this ADR.
See here for the overall project architecture.
Setup
<!-- _stack - optional_ _How to build and run the code/app_ -->git clone git@github.com:bbc/digital-paper-edit-storybook.git
cd digital-paper-edit-storybook
Optional step to setup nvm to use node version 10, otherwise just use node version 10
nvm use || nvm install
in root of project
npm install
Usage - development
Start the storybook
npm start
Storybook is at http://localhost:6006/
Linking storybook to the Firebase app for development
In this repo, run:
npm run link:setup
In another terminal window:
npm run link
When finished, run:
npm run unlink
Usage - production
npm install @bbc/digital-paper-edit-storybook
<!-- Example of import
```js
import 'Breadcrumb' from '@bbc/digital-paper-edit-storybook/Breadcrumb'
<Breadcrumb />
```
-->
System Architecture
<!-- _High level overview of system architecture_ -->- uses
storybook
with the setup as explained in their docs to develop this React. <!-- - This uses [CSS Modules](https://github.com/css-modules/css-modules) to contain the scope of the css for this component. --> - .storybook/webpack.config.js changes the storybook webpack config to add support for css modules. <!-- - The parts of the component are inside [`./packages`](./packages) --> <!-- - [babel.config.js](./babel.config.js) provides root level system config for [babel 7](https://babeljs.io/docs/en/next/config-files#project-wide-configuration). -->
Development env
<!-- _How to run the development environment_ _Coding style convention ref optional, eg which linter to use_ _Linting, github pre-push hook - optional_ -->- npm >
6.1.0
- Node 10 - dubnium
Node version is set in node version manager .nvmrc
Build
<!-- _How to run build_ -->To transpile ./src
and create a build in the ./dist
folder, run:
npm run build
Demo & storybook
- Storybook can bew viewed at https://bbc.github.io/digital-paper-edit-storybook/
- Demo can be viewed at https://bbc.github.io/digital-paper-edit-client
Build - storybook
To build the storybook as a static site
npm run build-storybook
Publish storybook & demo to github pages
This github repository uses github pages to host the storybook and the demo of the component. Make sure to commit and push any changes to MASTER before deploying to github pages.
npm run publish-ghpages
Alternatively, if you simply want to build the demo locally in the build
folder then just
npm run build-storybook
Tests
<!-- _How to carry out tests_ -->Test coverage using jest
, to run tests
npm run test
Travis CI
On commit, - this repo uses the .travis.yml config to run the automated test on travis CI.
Deployment
NPM
Note that only
README.md
and thedist
folders are published to NPM.
New releases
- Go into the
release
branch and pull the new changes frommaster
. - Commit or push changes to the remote branch of
release
- Find corresponding changes in Travis
If you had to make changes in release
, make sure that the release
is equivalent to master
!
Locally, using the NPM cli
To push to npm - @bbc/digital-paper-edit-storybook
login into npm
npm run publish-public
This runs npm run build
and npm publish --access public
under the hood
Contributing
See CONTRIBUTING.md guidelines and CODE_OF_CONDUCT.md guidelines.
Licence
<!-- mention MIT Licence -->See LICENCE
Legal Disclaimer
Despite using React, the BBC is not promoting any Facebook products or other commercial interest.