shesha-react
TypeScript icon, indicating that this package has built-in type declarations

1.0.54 • Public • Published

Welcome to Shesha v3.0 Storybook

Build Status

Documentation is here

This is the place where all of the React web components for Shesha Web version 3 are documented!. This boilerplate was inspired by this library

Code Structure

@shesha/react-components/
    next-example/
      .storybook
      assets
      pages 
      server
      stories
      typings
    src/
      components/
      models/
      styles/
      typings/
      utils/
        index.tsx
        styles.scss
        typings.d.ts
  .babelrc
  .editorconfig
  .eslintignore
  .eslintrc
  .gitignore
  .travis.yml
  package-lock.json
  package.json
  README.md
  rollup.config.js
  tsconfig.json
  tsconfig.test.json
  tslint.json

How to contribute

To contribute, you need to create your new component under src/components/componentName. Make sure that every componet is then imported and exporteed in the src/components/componentName/index.tsx file.

Creating the component

Each component folder should be the name of the component in camelCase. The component name should be in PascalCase. Inside the folder, there should be at least 2 files, namely, index.tsx, which will contain the component and styles.scss, which will be containing the styles for that component. Below is an example:

@shesha/react-components/
    src/
      components/
        componentName
          index.tsx
          styles.scss.tsx

Development

Local development is broken into two parts (ideally using two tabs).

First, run rollup to watch your src/ module and automatically recompile it into dist/ whenever you make changes.

npm start # runs rollup with watch flag

The second part will be running the storybook, under next-example that's linked to the local version of your module.

# (in another tab)
cd next-example
npm run storybook # runs storybook server

Now, anytime you make a change to your library in src/ or to the example app's example/src, create-react-app will live-reload your local dev server so you can iterate on your component in real-time.

To import your componate named MyComponent, in your stories (or in your nextjs application, under next-example) you just write a statement like below

import { MyComponent } from '@shesha/react-components';

Versioning and publishing

Versioning

We use generate changelog to generate changelogs from git commands. Please read this article on version semantic versioning.

There are scripts in place to assist you with versioning. They are the following:

npm run changelog:major
npm run changelog:minor
npm run changelog:patch

You will run an appropriate one based on the changes you made. This will make sure that the version is changed in the package.json file and the log is added in the CHANGELOG.md file. You do not need to manually do that.

Publishing

In order to publish to npm you must have first signed in with the credetials to our private npm registry. To use local server you need to change registry using following command:

npm set registry http://npm.boxfusion.co.za:4873/';

Sinopia falls back to the global server if the package doesn't exists on the local server

From there, you can login to npm using the command: npm login

To publish, the command is

npm publish

This builds cjs and es versions of your module to dist/ and then publishes your module to npm.

Make sure that any npm modules you want as peer dependencies are properly marked as peerDependencies in package.json. The rollup config will automatically recognize them as peers and not try to bundle them in your module.

TODOs

  • [ ] Add code coverage - Azure DevOps coverage
  • [ ] Add unit tests - Azure DevOps tests with custom labels
  • [ ] Allow the consumer to customize the components in .SCSS, using Webpack
  • [ ] Get @storybook/addon-info to work properly. (Currently when you click the show info button, it does not show the props for the components.

Readme

Keywords

none

Package Sidebar

Install

npm i shesha-react

Weekly Downloads

6

Version

1.0.54

License

MIT

Unpacked Size

15.6 MB

Total Files

302

Last publish

Collaborators

  • boxfusion-dev