Home

Awesome

Digital Paper Edit - React Components Catalogue

The Storybook

---> 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_ -->

Development env

<!-- _How to run the development environment_ _Coding style convention ref optional, eg which linter to use_ _Linting, github pre-push hook - optional_ -->

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

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 the dist folders are published to NPM.

New releases

  1. Go into the release branch and pull the new changes from master.
  2. Commit or push changes to the remote branch of release
  3. 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.