my-idea-pool-client
my-idea-pool-client copied to clipboard
fix(deps): update dependency formik to v2
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| formik (source) | 1.5.8 -> 2.2.9 |
Release Notes
formium/formik
v2.2.9
Patch Changes
v2.2.8
Patch Changes
3a9c707#3203 Thanks @hixus! - Fixes type of setError value as it is same as setFieldError message
v2.2.7
Patch Changes
-
e50040a#2881 Thanks @jinmayamashita! - Prevent calling getSelectedValues when the element has not options -
31405ab#3201 Thanks @artola! - Fixes regression that resulted in error update race condition from when usingvalidateOnMount -
c2d6926#2995 Thanks @johnrom! - Allow explicitly setting<form action>to empty string (#2981). Note: previous code which passed an empty string would result in a noop (simply appending # to the url), but this will now result in a form submission to the current page.
v2.2.6
Patch Changes
v2.2.5
Patch Changes
-
ebad985#2891 Thanks @jaredpalmer! - Remove low-priority validation implementation -
0dfa23b#2889 Thanks @jaredpalmer! - Fixed botched typescript builds including scheduler types
v2.2.4
Patch Changes
199e77a#2882 Thanks @umidbekkarimov! - ValidatesetFieldTouchedwith high priority
v2.2.3
Patch Changes
-
e0a28e6#2867 Thanks @umidbekkarimov! - Fix low priority validation for browser password autofill. -
958d67c#2874 Thanks @maddhruv! - fix FastField initial value when input type is radio or checkbox
v2.2.2
Patch Changes
00f95ec#2854 Thanks @umidbekkarimov! - Fix low priority validation race condition.
v2.2.1
Patch Changes
e04886d#2820 Thanks @wellyshen! - Fixed bug with scheduler andvalidateFormWithLowPrioritymethod not be scheduled correctly
v2.2.0
Minor Changes
-
4148181#2794 Thanks @jaredpalmer! -setValuecan now optionally accept a function as a callback, exposingReact.SetStateActionfunctionality. Previously, only the entire object was allowed which caused issues with stale props.setValues(prevValues => ({...prevValues, ... }))
v2.1.7
Patch Changes
bda9f41#2785 Thanks @jaredpalmer! - Replace all instances of the deprecated React.SFC type with React.FC
v2.1.6
v2.1.5
v2.1.4
v2.1.3
v2.1.2
v2.1.1
Patches
- Update website:
d1059c8 - Small spelling error: #2161
- Correctly handle single checkboxes and grouped ones values: #2159. Fixed a bug when
valuewas not specified on a checkbox as well as when there is just one checkbox. - Adds a community article: #2157
- Update contributing guidelines start step: #2158
- Force
FieldArrayto use latest values for validation: #2166
Credits
Huge thanks to @wallymathieu, @eliamaino-fp, and @mrmuhammadali for helping!
v2.1.0
Minor Changes
-
Add
FieldHelpersobject to the array returned byuseField: #2124. This exposes three helper functions to allow you to imperatively change the field in question:setValue(value: any)setTouched(value: boolean)setError(value: string)
Before
const MyInput = (props) => { const formik = useFormikContext() const [field, meta] = useField(props) const handleThing = () => { formik.setFieldValue(props.name, 'boop') } // ... }After
const MyInput = (props) => { const [field, meta, helpers] = useField(props) const handleThing = () => { helpers.setValue('boop') } // ... }
Credits
Huge thanks to @drivasperez for helping!
v2.0.11
Patches
- Keep empty array values on FieldArray: #2144
Credits
Huge thanks to @viniciusdacal for helping!
v2.0.10
TS Patch
- Fix
useField<T>generic.
v2.0.9
Patches
- Hotfix: Revert throwing combined errors: #2103
- Abort submit if instance of real Error: #2104
- Remove inline cDU usage in FieldArray: #2114
- Remodel FieldArray validation side effect to cDU: #2115
- Allow forced validation to run anywhere #2116
- Handle promise rejection in handleSubmit #2136
- Fix unhandled promise exception in low priority validation #2119
v2.0.8
Patches
- Hotfix: Revert throwing combined errors: #2103
- Abort submit if instance of real Error: #2104
- Remove inline cDU usage in FieldArray: #2114
- Remodel FieldArray validation side effect to cDU: #2115
v2.0.7
Improvements
- Massive perf boost over 2.0.6! We now save renders by comparing errors more efficiently in useFormik/Formik.
- FastField is now even faster. We fixed up our implementation of
shouldComponentUpdateby refactoring the component away from usingstatic contextTypeand back to using theconnect()higher order component.
Bug fixes
-
Fixed regression where
dirtyis wasn't re-evaluated afterresetForm() -
Fixed regression where handleChange would explode when event.target didn't exist (e.g. event.currentTarget
-
If there are validation errors while calling
submitForm(), the promise will now rejects with errors (and of course abort the submit). Previously, it would abort the submit and resolve. The nuance is hard to describe so here is the difference.Before (2.0.6)
submitForm() // imagine there are some Yup validation errors .then(() => console.log("abort submit, did not call onSubmit, and end up here")) .catch(() => console.log("abort submit, did not call onSubmit, but only because of a runtime error"));After (2.0.7)
submitForm() // imagine there are some Yup validation errors .then(() => console.log("executed onSubmit")) .catch((err) => console.log("aborted submit attempt"));2.0.6: https://codesandbox.io/s/gracious-noether-bu8u6 2.0.7: https://codesandbox.io/s/objective-perlman-jxhuq
Commits
- Bump version to 2.0.7
17d82bc - Fix dirty flag when calling resetForm with current values (#1986)
ec1d679 - Fix no target error (#2024)
c5ec709 - Fix unnecessary rendering of FastField (#2070)
2b6f71e - Ensure dirty is reevaluated when form is reset (#2087)
39bfbfb - fix FormikHelpers types (#2079)
5c59dbe - Avoid unnecessary re-renders by comparing errors to previous errors (#2069)
f4ff028 - handle an empty array value argument to setIn (#2072)
9da3288 - Throw validation errors from submitForm (#1843)
37870bf - (docs) : update tutorial Final Result code sandbox link (#2055)
4ac6186
v2.0.6
Bugfix
- Change onSubmit's type signature to accept
Promise<any>. This allows folks to return a promise that returns something (which is pretty common). Sorry about that folks.
Commits
- Generate 2.0.6 docs
e933b9c - Correct 2.0.5 docs
67e9071 - Change type signature of onSubmit to accept Promise
2738bbc
v2.0.5
Bugfixes
- Changed
onSubmitbehavior to mimic v1 if the function is synchronous. This means fixes a bug whereisSubmittingwas never toggled. To summarize: IfonSubmitis async, then Formik will automatically setisSubmittingtofalseon your behalf once the submission is completed. This means you do NOT need to callformikBag.setSubmitting(false)manually in v2. HOWEVER, if youronSubmitfunction is synchronous (e.g. v1), then you need to still callsetSubmitting(false)on your own. (#1987) - Fix checkbox bug with null value (#2027)
- Update
validateFormWithLowPrioritywith to use fresh values (#2025)
Commits
- Generate 2.0.5 website
a78bbff - Add docs about v1 onSubmit behavior
430f6cc - Update versions in docs
af0c7d0 - [tutorial] change id to name for Field example (#2007)
d0d7602 - Fix code examples in tutorial (#2049)
b04a762 - Use FormikHelpers instead of FormikActions in the example. (#2001)
8dbaaba - Change
isSubmittingbehaviour to mimic v1 (#1987)3ce6551 - Fix validation with instances in arrays, follow up to PR #1949 (#2029)
c0fe1b9 - Fix a few typos in tutorial.md (#2041)
e386371 - Update tutorial.md (#2043)
eb2029d - Update tutorial.md (#2036)
d78266f - Update tutorial.md (#2037)
0f54fb8 - Update tutorial.md (#2038)
aa7fbdb - [ImgBot] Optimize images (#2035)
d0b5b07 - Add Restaurant365 to users list (#2009)
02c303f - Fix checkbox with null value (#2027)
5916ac0 - fix typo: visted -> visited (#2032)
55cbfd3 - Call validateFormWithLowPriority with correct values (#2025)
8c08a63 - Update tutorial.md (#2030)
28c9242 - Update tutorial.md (#2031)
4b52d26 - Fixed typo in useField.md. (#2013)
189256d - Fix typo (#2016)
11a4bee - Update README.md
7940fee
v2.0.4
Bugfixes
- Fix
prepareDataForValidationwork with instances (#1949)ec7810a. this fixed a regression where people were having issues when keeping wonky objects likeMoment()as values. - Fixed
schedulerdep.
Internal
- Moved docs (and jaredpalmer.com) off of Netlify to Now.sh v2.
- Bumped React and TypeScript
- Cleaned up migration docs
Commits
- Add ts to migration docs (#1995)
5bae8e0 - Remove netlify ping (since we moved to zeit)
5553720 - Move back docs to their rightful location
343c4ee - Fix now deploys
86b61bb - Add now-build npm task
7fc52e1 - Now PR deploys (#1994)
8286190 - Setup Zeit for github
82775fa - Added v2 migration note on
FormikActionsrename toFormikHelpers(#1988)f80d9c6 - Fix classname bug (#1975)
76ec8de - Fix unnecessary let usage (#1964)
a4ebf84 - Update docs
a2b66c5 - Fix validateOnMount (#1971)
d90149e - fixed error in the text (#1970)
56c0a80 - Changed from
.min()method tomax()(#1959)654b97f - Use placeholder (lowercase) consistently (#1962)
e2c2d08 - Fix runtime error in useFormikContext example (#1965)
e5c8ee1 - Update tutorial with missing example / typos (#1966)
3638853 - Fix prepareDataForValidation work with instances (#1949)
ec7810a - Upgrade docusaurus to 1.14 (#1956)
53585cd - Fix quickstart link (#1955)
1992123 - Revert "The link is broken for the quickstart." (#1953)
db41f4c - The link is broken for the quickstart. (#1952)
0793638 - Chore: Fixes migrating-v2.md Typo (#1944)
94b066c - Fix extraneous <Formik> tag in docs/tutorial.md (#1946)
8be2e5d - Update codesandbox playground
34e3867 - Upgrade React, TS, Scheduler, @types/react (#1939)
cbd5681 - Fix build command in Codesandbox CI settings (#1943)
5963a8d - Update gzip badge to point to correct URL
cd985c8 - Replace 2.0.1 on website with 2.0.3
82f61d5 - Merge branch 'master' of github.com:jaredpalmer/formik
7882f3d - Fix typo in migration docs
2a56add - Fix typo in migration docs (#1938)
5d3a268
v2.0.3
Bugfixes
- Fixed TypeScript when using
<Form>due to omitted 2nd generic toReact.forwardRef. TypeScript users should use this version.
Commits
- Update migrating docs to clarify breaking change
e72db8a - Update MIGRATING-v2.md (#1937)
8ed4418 - Remove unnecessary word (#1936)
428eff2 - Add form-specific props to Form component (#1931)
e2c9c04 - Fix docs
bc9bc32 - docs: fix bugs in tutorial example code (#1932)
547dbed
v2.0.2
Bugfixes
- Fixed return TS type of of
useFieldso that it returns a tuple
Commits
- Fix tutorial
edf4976 - Fix field types (#1930)
7b0752a - Update MIGRATING-v2.md
49254b8 - Update MIGRATING-v2.md
42cc333 - Update MIGRATING-v2.md
0517c8c - Update MIGRATING-v2.md
6b220c0 - v2 docs on website (#1923)
c16fbc4
v2.0.1
Formik 2 Migration Guide
Breaking Changes
Minimum Requirements
- Since Formik 2 is built on top of React Hooks, you must be on React 16.8.x or higher
- Since Formik 2 uses the
unknowntype, you must be on TypeScript 3.0 or higher
resetForm
There is only one tiny breaking change in Formik 2.x. Luckily, it probably won't impact verry many people. Long story short, because we introduced initialErrors, initialTouched, initialStatus props, resetForm's signature has changed. It now accepts the next initial state of Formik (instead of just the next initial values).
v1
resetForm(nextValues);
v2
resetForm({ values: nextValues /* errors, touched, etc ... */ });
What's New?
Checkboxes and Select multiple
Similarly to Angular, Vue, or Svelte, Formik 2 "fixes" React checkboxes and multi-selects with built-in array binding and boolean behavior. This was one of the most confusing things for people in Formik 1.x.
import React from 'react';
import { Formik, Field, Form } from 'formik';
import { Debug } from './Debug';
const sleep = ms => new Promise(resolve => setTimeout(resolve, ms));
const CheckboxExample = () => (
<div>
<h1>Checkboxes</h1>
<p>
This example demonstrates how to properly create checkboxes with Formik.
</p>
<Formik
initialValues={{
isAwesome: false,
terms: false,
newsletter: false,
jobType: ['designer'],
location: [],
}}
onSubmit={async values => {
await sleep(1000);
alert(JSON.stringify(values, null, 2));
}}
>
{({ isSubmitting, getFieldProps, handleChange, handleBlur, values }) => (
<Form>
{/*
This first checkbox will result in a boolean value being stored.
*/}
<div className="label">Basic Info</div>
<label>
<Field type="checkbox" name="isAwesome" />
Are you awesome?
</label>
{/*
Multiple checkboxes with the same name attribute, but different
value attributes will be considered a "checkbox group". Formik will automagically
bind the checked values to a single array for your benefit. All the add and remove
logic will be taken care of for you.
*/}
<div className="label">
What best describes you? (check all that apply)
</div>
<label>
<Field type="checkbox" name="jobType" value="designer" />
Designer
</label>
<label>
<Field type="checkbox" name="jobType" value="developer" />
Developer
</label>
<label>
<Field type="checkbox" name="jobType" value="product" />
Product Manager
</label>
{/*
You do not _need_ to use <Field>/useField to get this behaviorr,
using handleChange, handleBlur, and values works as well.
*/}
<label>
<input
type="checkbox"
name="jobType"
value="founder"
checked={values.jobType.includes('founder')}
onChange={handleChange}
onBlur={handleBlur}
/>
CEO / Founder
</label>
{/*
The <select> element will also behave the same way if
you pass `multiple` prop to it.
*/}
<label htmlFor="location">Where do you work?</label>
<Field
component="select"
id="location"
name="location"
multiple={true}
>
<option value="NY">New York</option>
<option value="SF">San Francisco</option>
<option value="CH">Chicago</option>
<option value="OTHER">Other</option>
</Field>
<label>
<Field type="checkbox" name="terms" />I accept the terms and
conditions.
</label>
{/* Here's how you can use a checkbox to show / hide another field */}
{!!values.terms ? (
<div>
<label>
<Field type="checkbox" name="newsletter" />
Send me the newsletter <em style={{ color: 'rebeccapurple' }}>
(This is only shown if terms = true)
</em>
</label>
</div>
) : null}
<button type="submit" disabled={isSubmitting}>
Submit
</button>
<Debug />
</Form>
)}
</Formik>
</div>
);
export default CheckboxExample;
useField()
Just what you think, it's like <Field>, but with a hook. See docs for usage.
useFormikContext()
A hook that is equivalent to connect().
<Field as>
<Field/> now accepts a prop called as which will inject onChange, onBlur, value etc. directly through to the component or string. This is useful for folks using Emotion or Styled components as they no longer need to clean up component's render props in a wrapped function.
Misc
FormikContextis now exportedvalidateOnMount?: boolean = falseinitialErrors,initialTouched,initialStatushave been added
// <input className="form-input" placeHolder="Jane" />
<Field name="firstName" className="form-input" placeholder="Jane" />
// <textarea className="form-textarea"/></textarea>
<Field name="message" as="textarea" className="form-input"/>
// <select className="my-select"/>
<Field name="colors" as="select" className="my-select">
<option value="red">Red</option>
<option value="green">Green</option>
<option value="blue">Blue</option>
</Field>
// with styled-components/emotion
const MyStyledInput = styled.input`
padding: .5em;
border: 1px solid #eee;
/* ... */
`
const MyStyledTextarea = MyStyledInput.withComponent('textarea');
// <input className="czx_123" placeHolder="google.com" />
<Field name="website" as={MyStyledInput} placeHolder="google.com"/>
// <textarea placeHolder="Post a message..." rows={5}></textarea>
<Field name="message" as={MyStyledTextArea} placeHolder="Post a message.." rows={4}/>
getFieldProps(nameOrProps)
There are two useful additions to FormikProps, getFieldProps and getFieldMeta. These are Kent C. Dodds-esque prop getters that can be useful if you love prop drilling, are not using the context-based API's, or if you are building a custom useField.
export interface FieldInputProps<Value> {
/** Value of the field */
value: Value;
/** Name of the field */
name: string;
/** Multiple select? */
multiple?: boolean;
/** Is the field checked? */
checked?: boolean;
/** Change event handler */
onChange: FormikHandlers['handleChange'];
/** Blur event handler */
onBlur: FormikHandlers['handleBlur'];
}
getFieldMeta(name)
Given a name it will return an object:
export interface FieldMetaProps<Value> {
/** Value of the field */
value: Value;
/** Error message of the field */
error?: string;
/** Has the field been visited? */
touched: boolean;
/** Initial value of the field */
initialValue?: Value;
/** Initial touched state of the field */
initialTouched: boolean;
/** Initial error message of the field */
initialError?: string;
}
Deprecation Warnings
All render props have been deprecated with a console warning.
For <Field>, <FastField>, <Formik>,<FieldArray>, the render prop has been deprecated with a warning as it will be removed in future versions. Instead, use a child callback function. This deprecation is meant to parallel React Context Consumer's usage.
- <Field name="firstName" render={props => ....} />
+ <Field name="firstName">{props => ... }</Field>
v2.0.0
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
- [ ] If you want to rebase/retry this PR, check this box
This PR has been generated by Mend Renovate. View repository job log here.
Edited/Blocked Notification
Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.
You can manually request rebase by checking the rebase/retry box above.
⚠ Warning: custom changes will be lost.