chore: rewrite package
This commit is contained in:
		
							
								
								
									
										1
									
								
								.commitlintrc.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								.commitlintrc.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| { "extends": ["@commitlint/config-conventional"] } | ||||
| @@ -1,5 +0,0 @@ | ||||
| build/ | ||||
| dist/ | ||||
| node_modules/ | ||||
| .snapshots/ | ||||
| *.min.js | ||||
							
								
								
									
										36
									
								
								.eslintrc
									
									
									
									
									
								
							
							
						
						
									
										36
									
								
								.eslintrc
									
									
									
									
									
								
							| @@ -1,36 +0,0 @@ | ||||
| { | ||||
|   "parser": "@typescript-eslint/parser", | ||||
|   "extends": [ | ||||
|     "standard", | ||||
|     "standard-react", | ||||
|     "plugin:prettier/recommended", | ||||
|     "prettier/standard", | ||||
|     "prettier/react", | ||||
|     "plugin:@typescript-eslint/eslint-recommended" | ||||
|   ], | ||||
|   "env": { | ||||
|     "node": true | ||||
|   }, | ||||
|   "parserOptions": { | ||||
|     "ecmaVersion": 2020, | ||||
|     "ecmaFeatures": { | ||||
|       "legacyDecorators": true, | ||||
|       "jsx": true | ||||
|     } | ||||
|   }, | ||||
|   "settings": { | ||||
|     "react": { | ||||
|       "version": "16" | ||||
|     } | ||||
|   }, | ||||
|   "rules": { | ||||
|     "space-before-function-paren": 0, | ||||
|     "react/prop-types": 0, | ||||
|     "react/jsx-handler-names": 0, | ||||
|     "react/jsx-fragments": 0, | ||||
|     "react/no-unused-prop-types": 0, | ||||
|     "import/export": 0, | ||||
|     "no-use-before-define": "off", | ||||
|     "@typescript-eslint/no-use-before-define": "off" | ||||
|   } | ||||
| } | ||||
							
								
								
									
										1
									
								
								.github/ISSUE_TEMPLATE/BUG.md
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.github/ISSUE_TEMPLATE/BUG.md
									
									
									
									
										vendored
									
									
								
							| @@ -1,6 +1,7 @@ | ||||
| --- | ||||
| name: '🐛 Bug Report' | ||||
| about: 'Report an unexpected problem or unintended behavior.' | ||||
| title: '[Bug]' | ||||
| labels: 'bug' | ||||
| --- | ||||
|  | ||||
|   | ||||
							
								
								
									
										18
									
								
								.github/ISSUE_TEMPLATE/DOCUMENTATION.md
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										18
									
								
								.github/ISSUE_TEMPLATE/DOCUMENTATION.md
									
									
									
									
										vendored
									
									
								
							| @@ -1,20 +1,18 @@ | ||||
| --- | ||||
| name: '📜 Documentation' | ||||
| about: 'Correct spelling errors, improvements or additions to documentation files (README, CONTRIBUTING...).' | ||||
| title: '[Documentation]' | ||||
| labels: 'documentation' | ||||
| --- | ||||
|  | ||||
| <!-- | ||||
| Please make sure your issue has not already been fixed. | ||||
| <!-- Please make sure your issue has not already been fixed. --> | ||||
|  | ||||
| Please place an x (no spaces - [x]) in all [ ] that apply. | ||||
| --> | ||||
| ## Documentation | ||||
|  | ||||
| ### Documentation : | ||||
| <!-- Please uncomment the type of documentation problem this issue address --> | ||||
|  | ||||
| - [ ] Is Missing | ||||
| - [ ] Is Confusing | ||||
| - [ ] Has Typo errors | ||||
| - [ ] Not Sure? | ||||
| <!-- Documentation is Missing --> | ||||
| <!-- Documentation is Confusing --> | ||||
| <!-- Documentation has Typo errors --> | ||||
|  | ||||
| ### Proposal | ||||
| ## Proposal | ||||
|   | ||||
							
								
								
									
										7
									
								
								.github/ISSUE_TEMPLATE/FEATURE_REQUEST.md
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								.github/ISSUE_TEMPLATE/FEATURE_REQUEST.md
									
									
									
									
										vendored
									
									
								
							| @@ -1,19 +1,20 @@ | ||||
| --- | ||||
| name: '✨ Feature Request' | ||||
| about: 'Suggest a new feature idea.' | ||||
| title: '[Feature]' | ||||
| labels: 'feature request' | ||||
| --- | ||||
|  | ||||
| <!-- Please make sure your issue has not already been fixed. --> | ||||
|  | ||||
| ### Description | ||||
| ## Description | ||||
|  | ||||
| <!-- A clear and concise description of the problem or missing capability... --> | ||||
|  | ||||
| ### Describe the solution you'd like | ||||
| ## Describe the solution you'd like | ||||
|  | ||||
| <!-- If you have a solution in mind, please describe it. --> | ||||
|  | ||||
| ### Describe alternatives you've considered | ||||
| ## Describe alternatives you've considered | ||||
|  | ||||
| <!-- Have you considered any alternative solutions or workarounds? --> | ||||
|   | ||||
							
								
								
									
										21
									
								
								.github/ISSUE_TEMPLATE/IMPROVEMENT.md
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										21
									
								
								.github/ISSUE_TEMPLATE/IMPROVEMENT.md
									
									
									
									
										vendored
									
									
								
							| @@ -1,21 +1,20 @@ | ||||
| --- | ||||
| name: '🔧 Improvement' | ||||
| about: 'Improve structure/format/performance/refactor/tests of the code.' | ||||
| title: '[Improvement]' | ||||
| labels: 'improvement' | ||||
| --- | ||||
|  | ||||
| <!--. | ||||
| Please make sure your issue has not already been fixed. | ||||
| <!-- Please make sure your issue has not already been fixed. --> | ||||
|  | ||||
| Please place an x (no spaces - [x]) in all [ ] that apply. | ||||
| --> | ||||
| ## Type of Improvement | ||||
|  | ||||
| ### Type of Improvement : | ||||
| <!-- Please uncomment the type of improvements this issue address --> | ||||
|  | ||||
| - [ ] Files and Folders Structure | ||||
| - [ ] Performance | ||||
| - [ ] Refactoring code | ||||
| - [ ] Tests | ||||
| - [ ] Not Sure? | ||||
| <!-- Files and Folders Structure --> | ||||
| <!-- Performance --> | ||||
| <!-- Refactoring code --> | ||||
| <!-- Tests --> | ||||
| <!-- Not Sure? --> | ||||
|  | ||||
| ### Proposal | ||||
| ## Proposal | ||||
|   | ||||
							
								
								
									
										1
									
								
								.github/ISSUE_TEMPLATE/QUESTION.md
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.github/ISSUE_TEMPLATE/QUESTION.md
									
									
									
									
										vendored
									
									
								
							| @@ -1,6 +1,7 @@ | ||||
| --- | ||||
| name: '🙋 Question' | ||||
| about: 'Further information is requested.' | ||||
| title: '[Question]' | ||||
| labels: 'question' | ||||
| --- | ||||
|  | ||||
|   | ||||
							
								
								
									
										30
									
								
								.github/PULL_REQUEST_TEMPLATE.md
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										30
									
								
								.github/PULL_REQUEST_TEMPLATE.md
									
									
									
									
										vendored
									
									
								
							| @@ -1,29 +1,7 @@ | ||||
| <!-- | ||||
| <!-- Please first discuss the change you wish to make via issue before making a change. It might avoid a waste of your time. --> | ||||
|  | ||||
| Thanks a lot for your interest in contributing to react-component-form! 🎉 | ||||
| ## What changes this PR introduce? | ||||
|  | ||||
| Please first discuss the change you wish to make via issue before making a change. It might avoid a waste of your time. | ||||
| ## List any relevant issue numbers | ||||
|  | ||||
| Before submitting your contribution, please take a moment to review this document: | ||||
| https://github.com/Divlo/react-component-form/blob/master/.github/CONTRIBUTING.md | ||||
|  | ||||
| Please place an x (no spaces - [x]) in all [ ] that apply. | ||||
|  | ||||
| --> | ||||
|  | ||||
| ### What type of change does this PR introduce? | ||||
|  | ||||
| - [ ] Bugfix | ||||
| - [ ] Feature | ||||
| - [ ] Refactor | ||||
| - [ ] Documentation | ||||
| - [ ] Not Sure? | ||||
|  | ||||
| ### Does this PR introduce breaking changes? | ||||
|  | ||||
| - [ ] Yes | ||||
| - [ ] No | ||||
|  | ||||
| ### List any relevant issue numbers: | ||||
|  | ||||
| ### Description: | ||||
| ## Is there anything you'd like reviewers to focus on? | ||||
|   | ||||
							
								
								
									
										29
									
								
								.github/workflows/build.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								.github/workflows/build.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,29 @@ | ||||
| name: 'Build' | ||||
|  | ||||
| on: | ||||
|   push: | ||||
|     branches: [master] | ||||
|   pull_request: | ||||
|     branches: [master] | ||||
|  | ||||
| jobs: | ||||
|   build: | ||||
|     runs-on: 'ubuntu-latest' | ||||
|     steps: | ||||
|       - uses: 'actions/checkout@v2' | ||||
|  | ||||
|       - name: 'Use Node.js' | ||||
|         uses: 'actions/setup-node@v2.1.5' | ||||
|         with: | ||||
|           node-version: '14.x' | ||||
|  | ||||
|       - run: 'npm install --global npm@7' | ||||
|  | ||||
|       - name: 'Install' | ||||
|         run: 'npm ci' | ||||
|  | ||||
|       - name: 'Build Package' | ||||
|         run: 'npm run build' | ||||
|  | ||||
|       - name: 'Build Example' | ||||
|         run: 'cd example && npm ci && npm run build' | ||||
							
								
								
									
										16
									
								
								.github/workflows/commitlint.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										16
									
								
								.github/workflows/commitlint.yml
									
									
									
									
										vendored
									
									
								
							| @@ -1,16 +0,0 @@ | ||||
| name: 'Lint Commit Messages' | ||||
|  | ||||
| on: | ||||
|   push: | ||||
|     branches: [master] | ||||
|   pull_request: | ||||
|     branches: [master] | ||||
|  | ||||
| jobs: | ||||
|   commitlint: | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - uses: actions/checkout@v2 | ||||
|         with: | ||||
|           fetch-depth: 0 | ||||
|       - uses: wagoid/commitlint-github-action@v2 | ||||
							
								
								
									
										28
									
								
								.github/workflows/lint.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								.github/workflows/lint.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,28 @@ | ||||
| name: 'Lint' | ||||
|  | ||||
| on: | ||||
|   push: | ||||
|     branches: [master] | ||||
|   pull_request: | ||||
|     branches: [master] | ||||
|  | ||||
| jobs: | ||||
|   lint: | ||||
|     runs-on: 'ubuntu-latest' | ||||
|     steps: | ||||
|       - uses: 'actions/checkout@v2' | ||||
|  | ||||
|       - name: 'Use Node.js' | ||||
|         uses: 'actions/setup-node@v2.1.5' | ||||
|         with: | ||||
|           node-version: '14.x' | ||||
|  | ||||
|       - run: 'npm install --global npm@7' | ||||
|  | ||||
|       - name: 'Install' | ||||
|         run: 'npm ci --cache .npm --prefer-offline' | ||||
|  | ||||
|       - run: 'npm run lint:commit -- --to "${{ github.sha }}"' | ||||
|       - run: 'npm run lint:editorconfig' | ||||
|       - run: 'npm run lint:markdown' | ||||
|       - run: 'npm run lint:typescript' | ||||
							
								
								
									
										33
									
								
								.github/workflows/node.js.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										33
									
								
								.github/workflows/node.js.yml
									
									
									
									
										vendored
									
									
								
							| @@ -1,33 +0,0 @@ | ||||
| name: Node.js CI | ||||
|  | ||||
| on: | ||||
|   push: | ||||
|     branches: [master] | ||||
|   pull_request: | ||||
|     branches: [master] | ||||
|  | ||||
| jobs: | ||||
|   build: | ||||
|     runs-on: ubuntu-latest | ||||
|  | ||||
|     strategy: | ||||
|       matrix: | ||||
|         node-version: [12.x, 14.x] | ||||
|  | ||||
|     steps: | ||||
|       - uses: actions/checkout@v2 | ||||
|       - name: 'Cache dependencies' | ||||
|         uses: actions/cache@v2 | ||||
|         with: | ||||
|           path: '**/node_modules' | ||||
|           key: ${{ runner.os }}-${{ hashFiles('**/package-lock.json') }} | ||||
|       - name: Use Node.js ${{ matrix.node-version }} | ||||
|         uses: actions/setup-node@v2.1.2 | ||||
|         with: | ||||
|           node-version: ${{ matrix.node-version }} | ||||
|  | ||||
|       - name: 'Install dependencies' | ||||
|         run: npm ci | ||||
|  | ||||
|       - name: 'Run the tests' | ||||
|         run: npm test | ||||
							
								
								
									
										30
									
								
								.github/workflows/npm-publish.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										30
									
								
								.github/workflows/npm-publish.yml
									
									
									
									
										vendored
									
									
								
							| @@ -1,30 +0,0 @@ | ||||
| # For more information see: https://help.github.com/actions/language-and-framework-guides/publishing-nodejs-packages | ||||
|  | ||||
| name: 'Node.js Package' | ||||
|  | ||||
| on: | ||||
|   release: | ||||
|     types: [created] | ||||
|  | ||||
| jobs: | ||||
|   publish-npm: | ||||
|     runs-on: 'ubuntu-latest' | ||||
|     steps: | ||||
|       - uses: 'actions/checkout@v2' | ||||
|  | ||||
|       - name: 'Cache dependencies' | ||||
|         uses: 'actions/cache@v2' | ||||
|         with: | ||||
|           path: '**/node_modules' | ||||
|           key: ${{ runner.os }}-${{ hashFiles('**/package.json') }} | ||||
|  | ||||
|       - uses: 'actions/setup-node@v2.1.2' | ||||
|         with: | ||||
|           node-version: 14 | ||||
|           registry-url: 'https://registry.npmjs.org/' | ||||
|  | ||||
|       - run: 'npm install' | ||||
|       - run: 'npm run build' | ||||
|       - run: 'npm publish' | ||||
|         env: | ||||
|           NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} | ||||
							
								
								
									
										33
									
								
								.github/workflows/release.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								.github/workflows/release.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,33 @@ | ||||
| name: 'Release' | ||||
|  | ||||
| on: | ||||
|   push: | ||||
|     branches: [master] | ||||
|  | ||||
| jobs: | ||||
|   build: | ||||
|     runs-on: 'ubuntu-latest' | ||||
|     steps: | ||||
|       - uses: 'actions/checkout@v2' | ||||
|  | ||||
|       - name: 'Use Node.js' | ||||
|         uses: 'actions/setup-node@v2.1.5' | ||||
|         with: | ||||
|           node-version: '14.x' | ||||
|  | ||||
|       - run: 'npm install --global npm@7' | ||||
|  | ||||
|       - name: 'Install' | ||||
|         run: 'npm ci' | ||||
|  | ||||
|       - name: 'Build Package' | ||||
|         run: 'npm run build' | ||||
|  | ||||
|       - name: 'Build Example' | ||||
|         run: 'cd example && npm ci && npm run build' | ||||
|  | ||||
|       - name: 'Deploy Example' | ||||
|         uses: 'JamesIves/github-pages-deploy-action@4.1.4' | ||||
|         with: | ||||
|           branch: 'gh-pages' | ||||
|           folder: 'dist' | ||||
							
								
								
									
										26
									
								
								.github/workflows/test.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								.github/workflows/test.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,26 @@ | ||||
| name: 'Test' | ||||
|  | ||||
| on: | ||||
|   push: | ||||
|     branches: [master] | ||||
|   pull_request: | ||||
|     branches: [master] | ||||
|  | ||||
| jobs: | ||||
|   test: | ||||
|     runs-on: 'ubuntu-latest' | ||||
|     steps: | ||||
|       - uses: 'actions/checkout@v2' | ||||
|  | ||||
|       - name: 'Use Node.js' | ||||
|         uses: 'actions/setup-node@v2.1.5' | ||||
|         with: | ||||
|           node-version: '14.x' | ||||
|  | ||||
|       - run: 'npm install --global npm@7' | ||||
|  | ||||
|       - name: 'Install' | ||||
|         run: 'npm ci --cache .npm --prefer-offline' | ||||
|  | ||||
|       - name: 'Test' | ||||
|         run: 'npm run test' | ||||
							
								
								
									
										25
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										25
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -1,21 +1,6 @@ | ||||
| # See https://help.github.com/ignore-files/ for more about ignoring files. | ||||
|  | ||||
| # dependencies | ||||
| node_modules | ||||
|  | ||||
| # builds | ||||
| build | ||||
| dist | ||||
| .rpt2_cache | ||||
|  | ||||
| # misc | ||||
| *.log | ||||
| .DS_Store | ||||
| .env | ||||
| .env.local | ||||
| .env.development.local | ||||
| .env.test.local | ||||
| .env.production.local | ||||
|  | ||||
| npm-debug.log* | ||||
| yarn-debug.log* | ||||
| yarn-error.log* | ||||
| node_modules | ||||
| .cache | ||||
| dist | ||||
| .parcel-cache | ||||
|   | ||||
							
								
								
									
										6
									
								
								.markdownlint.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								.markdownlint.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | ||||
| { | ||||
|   "default": true, | ||||
|   "MD013": false, | ||||
|   "MD033": false, | ||||
|   "MD041": false | ||||
| } | ||||
							
								
								
									
										10
									
								
								.prettierrc
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								.prettierrc
									
									
									
									
									
								
							| @@ -1,10 +0,0 @@ | ||||
| { | ||||
|   "singleQuote": true, | ||||
|   "jsxSingleQuote": true, | ||||
|   "semi": false, | ||||
|   "tabWidth": 2, | ||||
|   "bracketSpacing": true, | ||||
|   "jsxBracketSameLine": false, | ||||
|   "arrowParens": "always", | ||||
|   "trailingComma": "none" | ||||
| } | ||||
							
								
								
									
										6
									
								
								.prettierrc.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								.prettierrc.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | ||||
| { | ||||
|   "semi": false, | ||||
|   "singleQuote": true, | ||||
|   "jsxSingleQuote": true, | ||||
|   "trailingComma": "none" | ||||
| } | ||||
| @@ -1,27 +1,33 @@ | ||||
| # Contributing | ||||
| # 💡 Contributing | ||||
| 
 | ||||
| Thanks a lot for your interest in contributing to **react-component-form**! 🎉 | ||||
| 
 | ||||
| ## Code of Conduct | ||||
| 
 | ||||
| **react-component-form** has adopted the [Contributor Covenant](https://www.contributor-covenant.org/) as its Code of Conduct, and we expect project participants to adhere to it. Please read [the full text](./CODE_OF_CONDUCT.md) so that you can understand what actions will and will not be tolerated. | ||||
| 
 | ||||
| ## Types of contributions | ||||
| 
 | ||||
| - Reporting a bug. | ||||
| - Suggest a new feature idea. | ||||
| - Correct spelling errors, improvements or additions to documentation files (README, CONTRIBUTING...). | ||||
| - Correct spelling errors, improvements or additions to documentation files. | ||||
| - Improve structure/format/performance/refactor/tests of the code. | ||||
| 
 | ||||
| ## Pull Requests | ||||
| 
 | ||||
| - **Please first discuss** the change you wish to make via [issue](https://github.com/Divlo/react-component-form/issues) before making a change. It might avoid a waste of your time. | ||||
| - **Please first discuss** the change you wish to make via issues. | ||||
| 
 | ||||
| - Ensure your code respect [JavaScript Standard Style](https://standardjs.com/). | ||||
| - Ensure your code respect the linter. | ||||
| 
 | ||||
| - Make sure your code passes the tests. | ||||
| - Make sure your **code passes the tests**. | ||||
| 
 | ||||
| If you're adding new features to **react-component-form**, please include tests. | ||||
| 
 | ||||
| ## Commits | ||||
| 
 | ||||
| The commit message guidelines respect [@commitlint/config-conventional](https://github.com/conventional-changelog/commitlint/tree/master/%40commitlint/config-conventional) and [Semantic Versioning](https://semver.org/) for releases. | ||||
| The commit message guidelines respect | ||||
| [@commitlint/config-conventional](https://github.com/conventional-changelog/commitlint/tree/master/%40commitlint/config-conventional) | ||||
| and [Semantic Versioning](https://semver.org/) for releases. | ||||
| 
 | ||||
| ### Types | ||||
| 
 | ||||
| @@ -44,16 +50,3 @@ Types define which kind of changes you made to the project. | ||||
| ### Scopes | ||||
| 
 | ||||
| Scopes define what part of the code changed. | ||||
| 
 | ||||
| There are 2 principal scopes in the project : | ||||
| 
 | ||||
| - lib | ||||
| - example | ||||
| 
 | ||||
| ### Examples | ||||
| 
 | ||||
| ```sh | ||||
| git commit -m "feat(lib): add Form component" | ||||
| git commit -m "docs(readme): update installation process" | ||||
| git commit -m "fix(example): remove bugs" | ||||
| ``` | ||||
							
								
								
									
										12
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								README.md
									
									
									
									
									
								
							| @@ -5,12 +5,16 @@ | ||||
| </p> | ||||
|  | ||||
| <p align="center"> | ||||
|   <a href="https://github.com/Divlo/react-component-form/actions?query=workflow%3A%22Node.js+CI%22"><img src="https://github.com/Divlo/react-component-form/workflows/Node.js%20CI/badge.svg" alt="Node.js CI" /></a> | ||||
|   <a href="https://standardjs.com"><img src="https://img.shields.io/badge/code_style-standard-brightgreen.svg" alt="JavaScript Style Guide"/></a> | ||||
|   <a href="https://www.npmjs.com/package/react-component-form"><img src="https://img.shields.io/npm/v/react-component-form.svg" alt="npm version"></a> | ||||
|    <a href="./CONTRIBUTING.md"><img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat" /></a> | ||||
|   <a href="./LICENSE"><img src="https://img.shields.io/badge/licence-MIT-blue.svg" alt="Licence MIT"/></a> | ||||
|   <a href="./CODE_OF_CONDUCT.md"><img src="https://img.shields.io/badge/Contributor%20Covenant-v2.0%20adopted-ff69b4.svg" alt="Contributor Covenant" /></a> | ||||
|   <br /> | ||||
|   <a href="https://github.com/Divlo/react-component-form/actions/workflows/build.yml"><img src="https://github.com/Divlo/react-component-form/actions/workflows/build.yml/badge.svg?branch=master" /></a> | ||||
|   <a href="https://github.com/Divlo/react-component-form/actions/workflows/lint.yml"><img src="https://github.com/Divlo/react-component-form/actions/workflows/lint.yml/badge.svg?branch=master" /></a> | ||||
|   <a href="https://github.com/Divlo/react-component-form/actions/workflows/test.yml"><img src="https://github.com/Divlo/react-component-form/actions/workflows/test.yml/badge.svg?branch=master" /></a> | ||||
|   <br /> | ||||
|   <a href="https://conventionalcommits.org"><img src="https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg" alt="Conventional Commits" /></a> | ||||
|   <a href="./.github/CODE_OF_CONDUCT.md"><img src="https://img.shields.io/badge/Contributor%20Covenant-v2.0%20adopted-ff69b4.svg" alt="Contributor Covenant" /></a> | ||||
|   <a href="https://www.npmjs.com/package/react-component-form"><img src="https://img.shields.io/npm/v/react-component-form.svg" alt="npm version"></a> | ||||
| </p> | ||||
|  | ||||
| ## 📜 About | ||||
|   | ||||
| @@ -1 +0,0 @@ | ||||
| module.exports = { extends: ['@commitlint/config-conventional'] } | ||||
							
								
								
									
										3
									
								
								example/.npmignore
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								example/.npmignore
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| node_modules | ||||
| .cache | ||||
| dist | ||||
| @@ -1,5 +0,0 @@ | ||||
| This example was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). | ||||
|  | ||||
| It is linked to the react-component-form package in the parent directory for development purposes. | ||||
|  | ||||
| You can run `npm install` and then `npm start` to test your package. | ||||
| Before Width: | Height: | Size: 83 KiB After Width: | Height: | Size: 83 KiB | 
							
								
								
									
										1
									
								
								example/globals.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								example/globals.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| declare module "*.jpg" | ||||
							
								
								
									
										14
									
								
								example/index.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								example/index.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | ||||
| <!DOCTYPE html> | ||||
| <html lang="en"> | ||||
|   <head> | ||||
|     <meta charset="UTF-8" /> | ||||
|     <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | ||||
|     <meta http-equiv="X-UA-Compatible" content="ie=edge" /> | ||||
|     <link rel="shortcut icon" href="./github.jpg" type="image/jpg"> | ||||
|     <title>Playground</title> | ||||
|   </head> | ||||
|   <body> | ||||
|     <div id="root"></div> | ||||
|     <script src="./index.tsx"></script> | ||||
|   </body> | ||||
| </html> | ||||
| @@ -1,10 +1,9 @@ | ||||
| //eslint-disable-next-line
 | ||||
| import React from 'react' | ||||
| import ReactDOM from 'react-dom' | ||||
| import Form, { HandleForm } from 'react-component-form' | ||||
| import * as React from 'react' | ||||
| import * as ReactDOM from 'react-dom' | ||||
| import Form, { HandleForm } from '../.' | ||||
| 
 | ||||
| import GithubLogo from './github.jpg' | ||||
| import './index.css' | ||||
| import GitHubLogo from 'url:./github.jpg' | ||||
| 
 | ||||
| const App = () => { | ||||
|   const handleSubmit: HandleForm = (formData, formElement) => { | ||||
| @@ -20,7 +19,7 @@ const App = () => { | ||||
|   return ( | ||||
|     <div className='container'> | ||||
|       <h2>{'<Form />'}</h2> | ||||
|       <h5 className='title-install'>npm i react-component-form</h5> | ||||
|       <h5 className='title-install'>npm install --save react-component-form</h5> | ||||
| 
 | ||||
|       <Form onSubmit={handleSubmit} onChange={handleChange}> | ||||
|         <div className='form-group'> | ||||
| @@ -54,7 +53,7 @@ const App = () => { | ||||
|           rel='noopener noreferrer' | ||||
|           href='https://github.com/Divlo/react-component-form' | ||||
|         > | ||||
|           <img width='30px' alt='github' src={GithubLogo} /> | ||||
|           <img width='30px' alt='github' src={GitHubLogo} /> | ||||
|         </a> | ||||
|       </div> | ||||
|     </div> | ||||
							
								
								
									
										60137
									
								
								example/package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										60137
									
								
								example/package-lock.json
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -1,44 +1,20 @@ | ||||
| { | ||||
|   "name": "react-component-form-example", | ||||
|   "homepage": ".", | ||||
|   "version": "0.0.0", | ||||
|   "private": true, | ||||
|   "eslintConfig": { | ||||
|     "extends": "react-app" | ||||
|   }, | ||||
|   "browserslist": { | ||||
|     "production": [ | ||||
|       ">0.2%", | ||||
|       "not dead", | ||||
|       "not op_mini all" | ||||
|     ], | ||||
|     "development": [ | ||||
|       "last 1 chrome version", | ||||
|       "last 1 firefox version", | ||||
|       "last 1 safari version" | ||||
|     ] | ||||
|   }, | ||||
|   "name": "example", | ||||
|   "version": "1.0.0", | ||||
|   "license": "MIT", | ||||
|   "scripts": { | ||||
|     "start": "node ../node_modules/react-scripts/bin/react-scripts.js start", | ||||
|     "build": "node ../node_modules/react-scripts/bin/react-scripts.js build", | ||||
|     "test": "node ../node_modules/react-scripts/bin/react-scripts.js test", | ||||
|     "eject": "node ../node_modules/react-scripts/bin/react-scripts.js eject" | ||||
|     "start": "parcel index.html", | ||||
|     "build": "parcel build index.html" | ||||
|   }, | ||||
|   "dependencies": { | ||||
|     "@testing-library/jest-dom": "file:../node_modules/@testing-library/jest-dom", | ||||
|     "@testing-library/react": "file:../node_modules/@testing-library/react", | ||||
|     "@testing-library/user-event": "file:../node_modules/@testing-library/user-event", | ||||
|     "@types/jest": "file:../node_modules/@types/jest", | ||||
|     "@types/node": "file:../node_modules/@types/node", | ||||
|     "@types/react": "file:../node_modules/@types/react", | ||||
|     "@types/react-dom": "file:../node_modules/@types/react-dom", | ||||
|     "react": "file:../node_modules/react", | ||||
|     "react-component-form": "file:..", | ||||
|     "react-dom": "file:../node_modules/react-dom", | ||||
|     "react-scripts": "file:../node_modules/react-scripts", | ||||
|     "typescript": "file:../node_modules/typescript" | ||||
|   "alias": { | ||||
|     "react": "../node_modules/react", | ||||
|     "react-dom": "../node_modules/react-dom/profiling" | ||||
|   }, | ||||
|   "devDependencies": { | ||||
|     "@babel/plugin-syntax-object-rest-spread": "^7.8.3" | ||||
|     "@parcel/transformer-image": "2.0.0-beta.2", | ||||
|     "@types/react": "17.0.11", | ||||
|     "@types/react-dom": "17.0.7", | ||||
|     "parcel": "2.0.0-beta.2", | ||||
|     "typescript": "4.3.3" | ||||
|   } | ||||
| } | ||||
|   | ||||
										
											Binary file not shown.
										
									
								
							| Before Width: | Height: | Size: 3.8 KiB | 
| @@ -1,48 +0,0 @@ | ||||
| <!DOCTYPE html> | ||||
| <html lang="en"> | ||||
|   <head> | ||||
|     <meta charset="utf-8" /> | ||||
|     <link rel="shortcut icon" href="%PUBLIC_URL%/favicon.ico" /> | ||||
|     <meta | ||||
|       name="viewport" | ||||
|       content="width=device-width, initial-scale=1, shrink-to-fit=no" | ||||
|     /> | ||||
|     <meta name="theme-color" content="#000000" /> | ||||
|  | ||||
|     <!-- | ||||
|       manifest.json provides metadata used when your web app is added to the | ||||
|       homescreen on Android. See https://developers.google.com/web/fundamentals/engage-and-retain/web-app-manifest/ | ||||
|     --> | ||||
|     <link rel="manifest" href="%PUBLIC_URL%/manifest.json" /> | ||||
|  | ||||
|     <!-- | ||||
|       Notice the use of %PUBLIC_URL% in the tags above. | ||||
|       It will be replaced with the URL of the `public` folder during the build. | ||||
|       Only files inside the `public` folder can be referenced from the HTML. | ||||
|  | ||||
|       Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will | ||||
|       work correctly both with client-side routing and a non-root public URL. | ||||
|       Learn how to configure a non-root public URL by running `npm run build`. | ||||
|     --> | ||||
|     <title>react-component-form</title> | ||||
|   </head> | ||||
|  | ||||
|   <body> | ||||
|     <noscript> | ||||
|       You need to enable JavaScript to run this app. | ||||
|     </noscript> | ||||
|  | ||||
|     <div id="root"></div> | ||||
|  | ||||
|     <!-- | ||||
|       This HTML file is a template. | ||||
|       If you open it directly in the browser, you will see an empty page. | ||||
|  | ||||
|       You can add webfonts, meta tags, or analytics to this file. | ||||
|       The build step will place the bundled scripts into the <body> tag. | ||||
|  | ||||
|       To begin the development, run `npm start` or `yarn start`. | ||||
|       To create a production bundle, use `npm run build` or `yarn build`. | ||||
|     --> | ||||
|   </body> | ||||
| </html> | ||||
| @@ -1,15 +0,0 @@ | ||||
| { | ||||
|   "short_name": "react-component-form", | ||||
|   "name": "react-component-form", | ||||
|   "icons": [ | ||||
|     { | ||||
|       "src": "favicon.ico", | ||||
|       "sizes": "64x64 32x32 24x24 16x16", | ||||
|       "type": "image/x-icon" | ||||
|     } | ||||
|   ], | ||||
|   "start_url": ".", | ||||
|   "display": "standalone", | ||||
|   "theme_color": "#000000", | ||||
|   "background_color": "#ffffff" | ||||
| } | ||||
							
								
								
									
										1
									
								
								example/src/react-app-env.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								example/src/react-app-env.d.ts
									
									
									
									
										vendored
									
									
								
							| @@ -1 +0,0 @@ | ||||
| /// <reference types="react-scripts" /> | ||||
| @@ -1,30 +1,18 @@ | ||||
| { | ||||
|   "compilerOptions": { | ||||
|     "outDir": "dist", | ||||
|     "module": "esnext", | ||||
|     "lib": ["dom", "esnext", "DOM.Iterable"], | ||||
|     "moduleResolution": "node", | ||||
|     "jsx": "react", | ||||
|     "sourceMap": true, | ||||
|     "declaration": true, | ||||
|     "esModuleInterop": true, | ||||
|     "noImplicitReturns": true, | ||||
|     "noImplicitThis": true, | ||||
|     "noImplicitAny": true, | ||||
|     "strictNullChecks": true, | ||||
|     "suppressImplicitAnyIndexErrors": true, | ||||
|     "noUnusedLocals": true, | ||||
|     "noUnusedParameters": true, | ||||
|     "allowSyntheticDefaultImports": true, | ||||
|     "allowSyntheticDefaultImports": false, | ||||
|     "target": "es5", | ||||
|     "allowJs": true, | ||||
|     "skipLibCheck": true, | ||||
|     "strict": true, | ||||
|     "forceConsistentCasingInFileNames": true, | ||||
|     "resolveJsonModule": true, | ||||
|     "isolatedModules": true, | ||||
|     "noEmit": true | ||||
|   }, | ||||
|   "include": ["src"], | ||||
|   "exclude": ["node_modules", "build"] | ||||
|     "module": "commonjs", | ||||
|     "jsx": "react", | ||||
|     "moduleResolution": "node", | ||||
|     "noImplicitAny": false, | ||||
|     "noUnusedLocals": false, | ||||
|     "noUnusedParameters": false, | ||||
|     "removeComments": true, | ||||
|     "strictNullChecks": true, | ||||
|     "preserveConstEnums": true, | ||||
|     "sourceMap": true, | ||||
|     "lib": ["es2015", "es2016", "dom"], | ||||
|     "types": ["node"] | ||||
|   } | ||||
| } | ||||
|   | ||||
							
								
								
									
										34764
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										34764
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										90
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										90
									
								
								package.json
									
									
									
									
									
								
							| @@ -4,16 +4,6 @@ | ||||
|   "description": "Manage React Forms with ease.", | ||||
|   "author": "Divlo <contact@divlo.fr>", | ||||
|   "license": "MIT", | ||||
|   "files": [ | ||||
|     "dist" | ||||
|   ], | ||||
|   "main": "dist/index.js", | ||||
|   "module": "dist/index.modern.js", | ||||
|   "types": "dist/index.d.ts", | ||||
|   "source": "src/index.tsx", | ||||
|   "engines": { | ||||
|     "node": ">=12" | ||||
|   }, | ||||
|   "repository": { | ||||
|     "type": "git", | ||||
|     "url": "git+https://github.com/Divlo/react-component-form.git" | ||||
| @@ -26,61 +16,41 @@ | ||||
|     "url": "https://github.com/Divlo/react-component-form/issues" | ||||
|   }, | ||||
|   "homepage": "https://github.com/Divlo/react-component-form#readme", | ||||
|   "husky": { | ||||
|     "hooks": { | ||||
|       "commit-msg": "commitlint -E HUSKY_GIT_PARAMS" | ||||
|     } | ||||
|   "module": "dist/react-component-form.esm.js", | ||||
|   "main": "dist/index.js", | ||||
|   "typings": "dist/index.d.ts", | ||||
|   "files": [ | ||||
|     "dist" | ||||
|   ], | ||||
|   "engines": { | ||||
|     "node": ">=12" | ||||
|   }, | ||||
|   "scripts": { | ||||
|     "build": "microbundle-crl --no-compress --format modern,cjs", | ||||
|     "start": "microbundle-crl watch --no-compress --format modern,cjs", | ||||
|     "prepare": "run-s build", | ||||
|     "test": "run-s test:unit test:lint test:build", | ||||
|     "test:build": "run-s build", | ||||
|     "test:lint": "eslint ./**/*.{js,jsx,ts,tsx}", | ||||
|     "test:unit": "cross-env CI=1 react-scripts test --env=jsdom", | ||||
|     "test:watch": "react-scripts test --env=jsdom", | ||||
|     "predeploy": "cd example && npm install && npm run build", | ||||
|     "deploy": "gh-pages -d example/build" | ||||
|     "start": "tsdx watch", | ||||
|     "build": "tsdx build", | ||||
|     "test": "tsdx test --passWithNoTests", | ||||
|     "lint:commit": "commitlint", | ||||
|     "lint:editorconfig": "editorconfig-checker", | ||||
|     "lint:markdown": "markdownlint '**/*.md' --dot --ignore node_modules", | ||||
|     "lint:typescript": "tsdx lint" | ||||
|   }, | ||||
|   "peerDependencies": { | ||||
|     "react": "*" | ||||
|   }, | ||||
|   "devDependencies": { | ||||
|     "@commitlint/cli": "^11.0.0", | ||||
|     "@commitlint/config-conventional": "^11.0.0", | ||||
|     "@testing-library/jest-dom": "^5.11.6", | ||||
|     "@testing-library/react": "^11.2.2", | ||||
|     "@testing-library/user-event": "^12.6.0", | ||||
|     "@types/jest": "^26.0.19", | ||||
|     "@types/node": "^14.14.16", | ||||
|     "@types/react": "^17.0.0", | ||||
|     "@types/react-dom": "^17.0.0", | ||||
|     "@typescript-eslint/eslint-plugin": "^4.0.1", | ||||
|     "@typescript-eslint/parser": "^4.0.1", | ||||
|     "babel-eslint": "^10.1.0", | ||||
|     "cross-env": "^7.0.3", | ||||
|     "eslint": "^6.6.0", | ||||
|     "eslint-config-prettier": "^6.12.0", | ||||
|     "eslint-config-standard": "^14.1.1", | ||||
|     "eslint-config-standard-react": "^9.2.0", | ||||
|     "eslint-plugin-import": "^2.22.1", | ||||
|     "eslint-plugin-node": "^11.1.0", | ||||
|     "eslint-plugin-prettier": "^3.3.0", | ||||
|     "eslint-plugin-promise": "^4.2.1", | ||||
|     "eslint-plugin-react": "^7.21.5", | ||||
|     "eslint-plugin-standard": "^4.0.1", | ||||
|     "gh-pages": "^3.1.0", | ||||
|     "husky": "^4.3.6", | ||||
|     "microbundle-crl": "^0.13.11", | ||||
|     "npm-run-all": "^4.1.5", | ||||
|     "prettier": "^2.2.1", | ||||
|     "react": "^17.0.1", | ||||
|     "react-dom": "^17.0.1", | ||||
|     "react-scripts": "^3.4.3", | ||||
|     "typescript": "^4.1.3" | ||||
|     "react": ">=16" | ||||
|   }, | ||||
|   "dependencies": { | ||||
|     "polyfill-object.fromentries": "^1.0.1" | ||||
|     "polyfill-object.fromentries": "1.0.1" | ||||
|   }, | ||||
|   "devDependencies": { | ||||
|     "@commitlint/cli": "12.1.4", | ||||
|     "@commitlint/config-conventional": "12.1.4", | ||||
|     "@testing-library/react": "11.2.7", | ||||
|     "@types/react": "17.0.11", | ||||
|     "@types/react-dom": "17.0.7", | ||||
|     "editorconfig-checker": "4.0.2", | ||||
|     "markdownlint-cli": "0.27.1", | ||||
|     "react": "17.0.2", | ||||
|     "react-dom": "17.0.2", | ||||
|     "tsdx": "0.14.1", | ||||
|     "typescript": "4.3.3" | ||||
|   } | ||||
| } | ||||
|   | ||||
							
								
								
									
										1
									
								
								src/index.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								src/index.d.ts
									
									
									
									
										vendored
									
									
								
							| @@ -1 +0,0 @@ | ||||
| declare module 'polyfill-object.fromentries' | ||||
| @@ -1,4 +1,3 @@ | ||||
| // eslint-disable-next-line | ||||
| import React, { useRef } from 'react' | ||||
| import 'polyfill-object.fromentries' | ||||
|  | ||||
|   | ||||
							
								
								
									
										1
									
								
								src/react-app-env.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								src/react-app-env.d.ts
									
									
									
									
										vendored
									
									
								
							| @@ -1 +0,0 @@ | ||||
| /// <reference types="react-scripts" /> | ||||
| @@ -1,10 +1,11 @@ | ||||
| import React from 'react' | ||||
| import Form, { HandleForm } from '.' | ||||
| import { render, cleanup, fireEvent } from '@testing-library/react' | ||||
| 
 | ||||
| import Form, { HandleForm } from '../src' | ||||
| 
 | ||||
| afterEach(cleanup) | ||||
| 
 | ||||
| describe('Form component', () => { | ||||
| describe('<Form />', () => { | ||||
|   it('should get the formData and formElement onSubmit and onChange', () => { | ||||
|     let formData: { [k: string]: any } = {} | ||||
|     let formElement: any = null | ||||
| @@ -1,41 +1,22 @@ | ||||
| { | ||||
|   "include": ["src", "types"], | ||||
|   "compilerOptions": { | ||||
|     "outDir": "dist", | ||||
|     "module": "esnext", | ||||
|     "target": "ES3", | ||||
|     "lib": [ | ||||
|       "dom", | ||||
|       "esnext", | ||||
|       "DOM.Iterable" | ||||
|     ], | ||||
|     "moduleResolution": "node", | ||||
|     "jsx": "react", | ||||
|     "sourceMap": true, | ||||
|     "module": "ESNext", | ||||
|     "lib": ["ESNext", "DOM", "DOM.Iterable"], | ||||
|     "importHelpers": false, | ||||
|     "declaration": true, | ||||
|     "esModuleInterop": true, | ||||
|     "sourceMap": true, | ||||
|     "rootDir": "./src", | ||||
|     "strict": true, | ||||
|     "noImplicitReturns": true, | ||||
|     "noImplicitThis": true, | ||||
|     "noImplicitAny": true, | ||||
|     "strictNullChecks": true, | ||||
|     "suppressImplicitAnyIndexErrors": true, | ||||
|     "noFallthroughCasesInSwitch": true, | ||||
|     "noUnusedLocals": true, | ||||
|     "noUnusedParameters": true, | ||||
|     "allowSyntheticDefaultImports": true, | ||||
|     "downlevelIteration": true, | ||||
|     "allowJs": true, | ||||
|     "moduleResolution": "node", | ||||
|     "jsx": "react", | ||||
|     "esModuleInterop": true, | ||||
|     "skipLibCheck": true, | ||||
|     "strict": true, | ||||
|     "forceConsistentCasingInFileNames": true, | ||||
|     "resolveJsonModule": true, | ||||
|     "isolatedModules": true, | ||||
|     "noEmit": true | ||||
|   }, | ||||
|   "include": [ | ||||
|     "src" | ||||
|   ], | ||||
|   "exclude": [ | ||||
|     "node_modules", | ||||
|     "dist", | ||||
|     "example" | ||||
|   ] | ||||
|     "noEmit": true, | ||||
|   } | ||||
| } | ||||
|   | ||||
| @@ -1,6 +0,0 @@ | ||||
| { | ||||
|   "extends": "./tsconfig.json", | ||||
|   "compilerOptions": { | ||||
|     "module": "commonjs" | ||||
|   } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user