custom-headless-input-field
v1.0.2
Published
Updated error type to react node
Downloads
740
Readme
InputField Component
Description
The InputField
component is a customizable Input field component.
Installation
To use the InputField
component in your project, you can install it via npm (or include it as part of your component library):
npm install custom-headless-input-field@latest"
Usage
Here’s a simple example of how to use the InputField
component in your application:
import React, { useState } from "react";
import { InputField } from "rcustom-headless-input-field";
const App = () => {
const [searchValue, setSearchValue] = useState("");
return (
<div>
<InputField
label={"Search"}
inputValue={searchValue}
placeholder={"Search by Name or by Title"}
handleInputChange={(e) => setSearchValue(e.target.value)}
className={
"hover:ring-2 ring-olive-green focus:ring-2 focus:ring-inset focus:ring-olive-green"
}
error={
searchValue.length > 30
? "Cannot be longer than 30 characters"
: false
}
/>
</div>
);
};
export default App;
Props
InputField Props
| Prop Name | Type | Required | Default | Description |
| ------------------- | ------------------ | ------------ | --------------------------- | ----------------------------------------------------------------------------------------------- |
| inputValue
| string
| ✅ | N/A | The value of the input field. |
| handleInputChange
| ChangeEvent
| ✅ | N/A | Function to handle changes to the input field value. |
| fieldWidth
| string
| ❌ | N/A | Defines the width of the input field container. Accepts Tailwind CSS classes or custom CSS. |
| onKeyDown
| Keyboardevent
| ❌ | undefined
| Optional function to handle onKeyDown
events (e.g., custom key press behaviors like "Enter"). |
| error
| React.ReactNode
| ❌ | | What to display in the a case of an error |
| label
| React.ReactNode
| ❌ | undefined
| Optional label for the input field. Accepts any valid React node. |
| placeholder
| string
| ❌ | ""
| Placeholder text for the input field. |
| className
| string
| ❌ | ""
| Additional CSS classes to apply custom styling to the input field. |
| disabled
| boolean
| ❌ | false
| If true
, disables the input field. |
| rowNum
| number
| ❌ | 1
| Specifies the number of rows in the textarea
. Adjusts the vertical size of the input field. |
| errorClass
| string
| ❌ | text-red-500 text-xs mt-3
| Classname for field if there is an error |
| handleBlur
| React.FocusEvent
| ❌ | | Function for handling focus events |
Styles
The InputField
component is styled using Tailwind CSS classes. Make sure to include Tailwind CSS in your project to apply the styles correctly.
Example CSS Setup
If you haven’t set up Tailwind CSS yet, here’s a basic example of how to do it:
- Install Tailwind CSS:
npm install -D tailwindcss postcss autoprefixer
npx tailwindcss init -p
- Configure your tailwind.config.js file:
module.exports = {
content: ["./src/**/*.{js,jsx,ts,tsx}", "./public/index.html"],
theme: {
extend: {},
},
plugins: [],
};
- Include Tailwind in your CSS file: Add the following lines to your main CSS file to include Tailwind’s base, components, and utilities:
@tailwind base;
@tailwind components;
@tailwind utilities;
Customization
Feel free to customize the Tailwind classes used in the InputField
component as needed to fit the design of your application.