diff --git a/.github/workflows/publish-github-packages.yml b/.github/workflows/publish-github-packages.yml new file mode 100644 index 0000000..b82b9af --- /dev/null +++ b/.github/workflows/publish-github-packages.yml @@ -0,0 +1,34 @@ +name: publish github packages + +on: + release: + types: [published] + +jobs: + publish-gpr: + runs-on: ubuntu-18.04 + steps: + - uses: actions/checkout@v2 + + - name: Setup Node + uses: actions/setup-node@v1 + with: + node-version: '12.x' + registry-url: 'https://npm.pkg.github.com' + scope: '@Pyrax' + + - name: Cache dependencies + uses: actions/cache@v2 + with: + path: ~/.yarn + key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }} + restore-keys: | + ${{ runner.os }}-node- + - run: yarn install --frozen-lockfile + + - name: Autoscope package.json + uses: khaazz/action-autoscope@master + + - run: yarn publish --registry=https://npm.pkg.github.com/Pyrax + env: + NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ecb7dfa..ea4e880 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -38,26 +38,3 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} NPM_TOKEN: ${{ secrets.NPM_TOKEN }} - github-packages-release: - needs: semantic-release - runs-on: ubuntu-18.04 - steps: - - uses: actions/checkout@v2 - - - name: Setup Node - uses: actions/setup-node@v1 - with: - node-version: '12.x' - - - name: Cache dependencies - uses: actions/cache@v2 - with: - path: ~/.yarn - key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }} - restore-keys: | - ${{ runner.os }}-node- - - run: yarn install --frozen-lockfile - - - run: yarn publish - env: - NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/README.md b/README.md index 6db88c1..d87f036 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,10 @@ > React components and hooks giving you the power of Netlify Forms. Start building serverless forms on Netlify with React. Honeypot fields and reCAPTCHA are included as ready-to-use components. -[![NPM](https://img.shields.io/npm/v/react-netlify-forms.svg)](https://www.npmjs.com/package/react-netlify-forms) [![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com) +[![NPM](https://flat.badgen.net/npm/v/react-netlify-forms)](https://www.npmjs.com/package/react-netlify-forms) +[![minzipped package size](https://flat.badgen.net/bundlephobia/minzip/react-netlify-forms)](https://www.npmjs.com/package/react-netlify-forms) +[![JavaScript Style Guide](https://flat.badgen.net/badge/code%20style/standard/f2a)](https://standardjs.com) +[![License](https://flat.badgen.net/github/license/Pyrax/react-netlify-forms)](https://github.com/Pyrax/react-netlify-forms/blob/master/LICENSE.md)
diff --git a/package.json b/package.json index 766b4a4..08d32d4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-netlify-forms", - "version": "1.1.0", + "version": "1.2.0", "homepage": "https://pyrax.github.io/react-netlify-forms", "bugs": { "url": "https://github.com/pyrax/react-netlify-forms/issues" diff --git a/src/netlify-form-reducer.js b/src/netlify-form-reducer.js index f480366..aec073e 100644 --- a/src/netlify-form-reducer.js +++ b/src/netlify-form-reducer.js @@ -19,9 +19,17 @@ export default function (state, action) { } } case 'SET_SUCCESS': - return { ...state, success: true, error: false } + return { + ...state, + success: true, + error: false, + submitting: false, + submitted: true + } case 'SET_ERROR': - return { ...state, success: false, error: true } + return { ...state, success: false, error: true, submitting: false } + case 'SET_SUBMITTING': + return { ...state, submitting: true } case 'SET_HONEYPOT_NAME': return { ...state, honeypotName: payload } case 'ENABLE_RECAPTCHA': diff --git a/src/netlify-form.js b/src/netlify-form.js index bf465b4..d2b670b 100644 --- a/src/netlify-form.js +++ b/src/netlify-form.js @@ -16,6 +16,8 @@ export const useNetlifyForm = ({ const initialState = { success: false, error: false, + submitting: false, + submitted: false, response: null, values: initialValues, formName: name, @@ -69,6 +71,8 @@ export const useNetlifyForm = ({ formData['g-recaptcha-response'] = recaptchaValue } + dispatch({ type: 'SET_SUBMITTING' }) + const response = await fetch('/', { method: 'POST', body: encodeFormData(formData) diff --git a/yarn.lock b/yarn.lock index d9e2ce8..6103e2b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3094,9 +3094,9 @@ bluebird@^3.5.5: integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.4.0: - version "4.11.8" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" - integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== + version "4.11.9" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" + integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== bn.js@^5.1.1: version "5.1.1" @@ -5384,9 +5384,9 @@ elf-tools@^1.1.1: integrity sha512-SZSL+FS1mooDVRc3js6jUsEtzVrTaFxjqE8aQzyfmABGBW1UvhT6LQzY305vIGaxazY3bKIbxwsYsWynkYeggA== elliptic@^6.0.0, elliptic@^6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.2.tgz#05c5678d7173c049d8ca433552224a495d0e3762" - integrity sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw== + version "6.5.3" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6" + integrity sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw== dependencies: bn.js "^4.4.0" brorand "^1.0.1"