1.0.4 • Published 5 months ago

ashish-form v1.0.4

Weekly downloads
-
License
ISC
Repository
-
Last release
5 months ago

ashish-form

A powerful, reusable React form component with built-in API integration, error handling, and dynamic form field support.

Features

  • Dynamic form field generation
  • Automatic API integration (POST, PUT, DELETE)
  • Built-in loading and error states
  • Support for checkbox fields with multiple options
  • Customizable styling
  • Flexible callback handling

Installation

npm install ashish-form

Usage

Basic Usage

import Form from 'ashish-form';

const MyComponent = () => {
  const formData = [
    { 
      id: 1,
      label: 'Name', 
      name: 'name', 
      type: 'text',
      required: true 
    },
    { 
      id: 2,
      label: 'Email', 
      name: 'email', 
      type: 'email',
      required: true 
    }
  ];

  return (
    <Form
      FORMDATA={formData}
      PostAPI="/api/submit"
      onSuccess={(data) => console.log('Success:', data)}
      onError={(error) => console.log('Error:', error)}
    />
  );
};

Advanced Usage with Checkboxes

import Form from 'ashish-form';
import CustomCheckbox from './CustomCheckbox';

const AdvancedForm = () => {
  const formData = [
    { 
      id: 1,
      label: 'Interests', 
      name: 'interests', 
      type: 'checkbox',
      options: [
        { label: 'Sports', value: 'sports' },
        { label: 'Music', value: 'music' },
        { label: 'Reading', value: 'reading' }
      ]
    }
  ];

  return (
    <Form
      FORMDATA={formData}
      PostAPI="/api/submit"
      CheckboxComponent={CustomCheckbox}
      onSuccess={(data) => console.log('Success:', data)}
    />
  );
};

Props

Form Props

PropTypeDescriptionDefault
FORMDATAArrayArray of form field configurationsRequired
PostAPIstringAPI endpoint for creating new items''
UPDATEAPIstringAPI endpoint for updating existing items''
DELETEAPIstringAPI endpoint for deleting items''
ClassNamestringCustom CSS class for the form''
BtnClassNamestringCustom CSS class for submit/update button'bg-blue-500 text-white p-2 rounded'
labelClassNamestringCustom CSS class for form labels''
MainDivClassstringCustom CSS class for main form container'flex flex-row'
onSuccessfunctionCallback function on successful submissionundefined
onErrorfunctionCallback function on submission errorundefined
initialDataobjectInitial form data for editing existing items{}
CheckboxComponentReact.ComponentCustom checkbox component for checkbox fieldsundefined

Form Field Configuration

PropertyTypeDescriptionRequired
idnumber/stringUnique identifier for the fieldYes
labelstringLabel text for the fieldYes
namestringInput name attributeYes
typestringInput type (text, email, checkbox, etc.)Yes
requiredbooleanWhether the field is requiredNo
placeholderstringPlaceholder text for the inputNo
optionsArrayOptions for checkbox fieldsNo (required for checkbox)

Error Handling

The component provides built-in error handling:

  • Displays error messages from API responses
  • Supports custom error callback
  • Disables submit button during loading

Styling

The form uses Tailwind CSS classes by default. You can customize styling using the various className props.

License

ISC

1.0.4

5 months ago

1.0.3

5 months ago

1.0.2

5 months ago

1.0.1

5 months ago

1.0.0

5 months ago