Skip to content

Instantly share code, notes, and snippets.

@iamnimnul
Forked from dphrag/ErrorFocus.jsx
Last active January 8, 2019 10:21
Show Gist options
  • Save iamnimnul/3b8a333da678e2e2d5c1635a09e1eef0 to your computer and use it in GitHub Desktop.
Save iamnimnul/3b8a333da678e2e2d5c1635a09e1eef0 to your computer and use it in GitHub Desktop.
Formik Scroll To First Invalid Element W/O Refs
import React from 'react';
import { connect } from 'formik';
class ErrorFocus extends React.Component {
componentDidUpdate(prevProps) {
const { isSubmitting, isValidating, errors } = prevProps.formik;
const keys = Object.keys(errors);
if (keys.length > 0 && isSubmitting && !isValidating) {
const selector = `[name="${keys[0]}"]`;
const errorElement = document.querySelector(selector);
errorElement.focus();
}
}
render() {
return null;
}
}
export default connect(ErrorFocus);
@iamnimnul
Copy link
Author

<Formik>
  {({ dirty, isSubmitting, errors }) => {
    return (
      <Form>
        <Field />
        <Field />
        <ErrorFocus />
      </Form>
    );
  }}
</Formik>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment