shesha-react-components v1.0.31
Welcome to Shesha v3.0 Storybook
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.jsonHow 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.tsxDevelopment
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 flagThe 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 serverNow, 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:patchYou 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 publishThis 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, usingWebpack - Get
@storybook/addon-infoto work properly. (Currently when you click theshow infobutton, it does not show thepropsfor the components.
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago