npm install react-hook-form-paste

simple declarative bindings for react-hook-form and Twilio React Paste components.

About react-hook-form-paste

React-hook-form-paste is an invaluable npm package designed to enhance the development experience when using React Hook Form with Twilio's React Paste components. This innovative tool provides simple declarative bindings, making it easier to integrate form handling functionalities with the UI component library offered by Twilio. By simplifying the integration process, react-hook-form-paste ensures developers can maintain clean code and efficient form management, thereby speeding up project development and reducing potential errors. This integration not only streamlines development workflows but also enhances the application's performance by leveraging React Hook Form's optimized form state management.

For developers eager to utilize this powerful combination in their projects, the command npm install react-hook-form-paste is all that's needed to get started. Once installed, developers can take advantage of react-hook-form-paste to seamlessly bind Twilio's robust UI toolkit with the lightweight, performance-focused handling of React Hook Form. This package effectively reduces the complexity and code verbosity typically associated with form management in large-scale applications, allowing developers to focus more on business logic rather than boilerplate code.

React-hook-form-paste stands out by offering documentation and resources such as a Storybook and Chromatic builds, which are essential for visual testing and component documentation. These tools provide developers with clear examples and the necessary support to implement complex forms with validation, default values, and custom inputs smoothly and reliably. The availability of a detailed CHANGELOG also ensures that developers can keep track of updates and improvements, making it easier to maintain and upgrade their applications with the latest features offered by react-hook-form-paste. This package is a must-have for any developer looking to build scalable, maintainable, and high-performance web applications using React and Twilio technologies.

More from vnguyen94

vnguyen94 npm packages

Find the best node modules for your project.

Search npm

react-hook-form-paste

simple declarative bindings for react-hook-form and Twilio React Paste components...

Read more

Dependencies

Core dependencies of this npm package and its dev dependencies.

@babel/core, @babel/plugin-transform-react-jsx, @babel/polyfill, @babel/preset-react, @babel/preset-typescript, @semantic-release/changelog, @semantic-release/commit-analyzer, @semantic-release/git, @semantic-release/github, @semantic-release/npm, @semantic-release/release-notes-generator, @storybook/addon-a11y, @storybook/addon-actions, @storybook/addon-docs, @storybook/addon-essentials, @storybook/addon-storyshots, @storybook/addons, @storybook/react, @storybook/storybook-deployer, @testing-library/jest-dom, @testing-library/react, @testing-library/react-hooks, @testing-library/user-event, @twilio-paste/core, @twilio-paste/icons, @types/react, @types/react-dom, @typescript-eslint/eslint-plugin, @typescript-eslint/parser, babel-jest, babel-loader, chromatic, commitizen, cz-conventional-changelog, eslint, eslint-config-twilio, eslint-config-twilio-react, eslint-config-twilio-ts, eslint-plugin-jest-dom, eslint-plugin-testing-library, husky, jest, lint-staged, prop-types, react, react-dom, react-hook-form, react-test-renderer, react-uid, semantic-release, typescript

Documentation

A README file for the react-hook-form-paste code repository. View Code

Storybook | Chromatic | CHANGELOG | npm

react-hook-form-paste

Codacy Badge Known Vulnerabilities codecov

If you require react-hook-form v6, use the last supported release version.

Super-charged Paste components using react-hook-form to handle form state.

This library lightly wraps Paste components to seamlessly integrate with react-hook-form, and handle abstraction wherever needed.

Getting started

yarn install react-hook-form-paste

Usage

import { Alert } from '@twilio-paste/core/alert';
import { Box } from '@twilio-paste/core/box';
import { Button } from '@twilio-paste/core/button';
import { Label } from '@twilio-paste/core/label';
import { Stack } from '@twilio-paste/core/stack';
import { useForm } from 'react-hook-form';
import { Input } from 'react-hook-form-paste';

interface IFormProps {
  emailAddress: string;
}

export const Basic: React.FC = () => {
  const { register, handleSubmit } = useForm<IFormProps>();

  return (
    <form
      onSubmit={handleSubmit((payload) => {
        window.alert(JSON.stringify(payload));
      })}
    >
      <Stack orientation="vertical" spacing="space80">
        <Box>
          <Label htmlFor="emailAddress">Email Address</Label>
          <Input {...register('emailAddress')} type="email" placeholder="example@twilio.com" />
        </Box>

        <Button variant="primary" type="submit">
          Submit
        </Button>
      </Stack>
    </form>
  );
};

Differences between react-hook-form-paste and Paste

With the advent of react-hook-form v7, react-hook-form-paste is mostly unnecessary; form type-safety is mostly ensured via the new {...register('formField')} pattern which natively work with Paste components. However, there are still some Paste components with more complex state such as OptionGroup. For these components, static form-typing can be enforced by passing in an interface into the generic component e.g. <OptionGroup<IFieldProps>>. This will constrain the name field to only keys of that interface.

Core Components

Component Props
Checkbox CheckboxProps
CheckboxDisclaimer CheckboxDisclaimerProps
CheckboxGroup { name } & CheckboxGroupProps
Input InputProps
Option OptionProps
OptionGroup OptionGroupProps
Radio RadioProps
RadioGroup { name, controllerProps } & RadioGroupProps
Select SelectProps
TextArea { name, controllerProps } & TextAreaProps

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

Acknowledgements

Heavily inspired by formik-antd.

License

MIT