Security News
CISA Brings KEV Data to GitHub
CISA's KEV data is now on GitHub, offering easier access, API integration, commit history tracking, and automated updates for security teams and researchers.
react-new-input
Advanced tools
https://brennemankyle.github.io/react-new-input/
A robust multi-select that automatically uses Radios, Checkboxes, or a Switch if they'll fit on one line
npm install react-new-input
// Example File
import React, { useState } from 'react'
import NewInput from 'react-new-input'
// With React Function/Hooks
let SomeHook = () => {
const [selection, setSelection] = useState()
let options = [
{value: '1', label: 'Option 1'},
{value: '2', label: 'Option 2'},
]
return <NewInput
name="example"
selection={selection}
onChange={(e) => setSelection(e.target.value)}
options={options} />
}
// OR With React Component
class SomeComponent extends React.Component {
constructor(props) {
super(props)
this.state = {selection}
this.options = [
{value: '1', label: 'Option 1'},
{value: '2', label: 'Option 2'},
]
}
onChange(e) {
this.setState({
selection: e.target.value
})
}
render() {
return <NewInput
name="example"
selection={this.state.selection}
onChange={this.onChange}
options={this.options} />
}
}
Name | Bundle Size |
---|---|
react-new-input | gzip 21.1kB (https://bundlephobia.com/result?p=react-new-input) |
react-select (competitor) | gzip 26.1kb (https://bundlephobia.com/result?p=react-select) |
Name | Default Value |
---|---|
onChange | undefined |
onBlur | noop |
onFocus | noop |
name | undefined |
selection | [] |
options | [] |
placeholder | 'Select...' |
multiple | false |
disabled | false |
creatable | false |
removable | true |
appendToBody | false |
rightToLeft | false |
allowDuplicates | true |
alwaysReturnArray | false |
filterOptions | filterOptions |
massageDataIn | massageDataIn |
massageDataOut | massageDataOut |
optionKeys | ['value', 'label'] |
checkRadioMaxCount | 10 |
parseTo | string |
Text Props | |
text_placeholder | '' |
text_noOptions | 'No Options' |
text_create | 'Create' |
Component Props | |
component_Select | Select |
component_CheckRadio | CheckRadio |
component_CheckBox | CheckBox |
component_Radio | Radio |
component_Switch | Switch |
component_HtmlFieldData | HtmlFieldData |
component_Wrapper | Wrapper |
component_Selection | Selection |
component_SelectionList | SelectionList |
component_OptionList | OptionList |
component_Option | Option |
component_Search | Search |
component_SelectionWrapper | SelectionWrapper |
component_OptionsWrapper | OptionsWrapper |
component_AppendToBodyOptionsWrapper | AppendToBodyOptionsWrapper |
component_StyledAppendToBodyOptionsWrapper | StyledAppendToBodyOptionsWrapper |
SVG Props | |
svg_Checkmark | Checkmark |
svg_Remove | Remove |
svg_Expand | Expand |
Style Props | |
styles_fontSize | '1em' |
styles_borderRadius | '.2em' |
styles_paddingTop | '.25em' |
styles_paddingBottom | '.25em' |
styles_paddingLeft | '.25em' |
styles_paddingRight | '.25em' |
styles_selection_paddingTop | '.2em' |
styles_selection_paddingBottom | '.2em' |
styles_selection_paddingLeft | '.4em' |
styles_selection_paddingRight | '.4em' |
styles_selection_margin | '.2em' |
styles_option_paddingTop | '.25em' |
styles_option_paddingBottom | '.25em' |
styles_option_paddingLeft | '.25em' |
styles_option_paddingRight | '.25em' |
styles_checkRadio_borderWidth | '2px' |
styles_checkRadio_marginBetween | '1em' |
styles_checkRadio_labelMargin | '.2em' |
styles_checkRadio_paddingTop | '.2em' |
styles_checkRadio_paddingBottom | '.2em' |
styles_checkRadio_paddingLeft | '.2em' |
styles_checkRadio_paddingRight | '.2em' |
styles_search_size | 5 |
styles_icon_width | '1em' |
styles_colors_primary | 'black' |
styles_colors_secondary | '#C3C3C3' |
styles_colors_highlight | 'lightblue' |
styles_colors_warning | '#FABAAC' |
styles_colors_warningBold | '#FA2222' |
styles_colors_disabled | '#ECECEC' |
styles_colors_background | 'white' |
Name | Description |
---|---|
onChange | Event when selection changes |
onBlur | Event when focus is lost |
onFocus | Event when focus is gained |
name | The HTML name in the form |
selection | The currently selected items |
options | The options to choose from |
placeholder | The placeholder of the search field |
multiple | Whether multiple items can be selected |
disabled | Whether component is disabled |
creatable | Whether new selected items can be created |
removable | Whether selected items are removable |
appendToBody | Whether options append to the body tag (can prevent options from being clipped) |
rightToLeft | Whether to show text from right to left instead |
allowDuplicates | Whether duplicate selection items are allowed |
alwaysReturnArray | Always return an array from onChange, instead of only when multiple |
filterOptions | The function which filters options based on search text |
massageDataIn | The function that massages the props coming in |
massageDataOut | The function massaging the selection returned from the onChange event |
optionKeys | The name of the keys in an option object |
checkRadioMaxCount | The maximum radio buttons allowed before rendering a Select instead |
parseTo | parse value from onChange to a js type: string, number, int, float, boolean |
Text Props | |
text_placeholder | Same as placeholder with a more descriptive name |
text_noOptions | The text shown when there are no options |
text_create | The text shown when a new selection can be created |
Component Props | |
component_Select | Multi/Single select component |
component_CheckRadio | Groups checkbox and radio components |
component_CheckBox | Checkbox component |
component_Radio | Radio button component |
component_Switch | On/Off switch component |
component_HtmlFieldData | Hidden component which keeps current selection in the HTML form |
component_Wrapper | Wraps the entire select component |
component_Selection | Component showing one selected item |
component_SelectionList | List of selected items |
component_OptionList | List of options |
component_Option | Component showing one option |
component_Search | Component responsable for the search text |
component_SelectionWrapper | Displays everything for the Select except the options |
component_OptionsWrapper | Wraps the OptionList |
component_AppendToBodyOptionsWrapper | Appends the OptionList to body tag |
component_StyledAppendToBodyOptionsWrapper | Styleable version of AppendToBodyOptionsWrapper wrapped inside of it |
SVG Props | |
svg_Checkmark | The checkmark image |
svg_Remove | The remove image |
svg_Expand | the expand image |
Style Props | |
styles_fontSize | Controls the entire size of the component |
styles_borderRadius | The amount of curve of the border |
styles_paddingTop | The padding top |
styles_paddingBottom | The padding bottom |
styles_paddingLeft | The padding left |
styles_paddingRight | The padding right |
styles_selection_paddingTop | The selection's padding top |
styles_selection_paddingBottom | The selection's padding bottom |
styles_selection_paddingLeft | The selection's padding left |
styles_selection_paddingRight | The selection's padding right |
styles_selection_margin | The selection's margin |
styles_option_paddingTop | The option's padding top |
styles_option_paddingBottom | The option's padding bottom |
styles_option_paddingLeft | The option's padding left |
styles_option_paddingRight | The option's padding right |
styles_checkRadio_borderWidth | The border width for checkbox, radio, and switch |
styles_checkRadio_marginBetween | The margin between radios and checkboxes |
styles_checkRadio_labelMargin | The margin between the label and it's radio/checkbox/switch |
styles_checkRadio_paddingTop | The padding top for radio/checkbox/switch group |
styles_checkRadio_paddingBottom | The padding bottom for radio/checkbox/switch group |
styles_checkRadio_paddingLeft | The padding left for radio/checkbox/switch group |
styles_checkRadio_paddingRight | The padding right for radio/checkbox/switch group |
styles_search_size | The size of the search component |
styles_icon_width | The width of all icon/SVGs |
styles_colors_primary | The primary color used |
styles_colors_secondary | The secondary color used |
styles_colors_highlight | The color of a highlighted option |
styles_colors_warning | The color of remove selection background |
styles_colors_warningBold | The color of the remove selection icon |
styles_colors_disabled | The color for disabled elements |
styles_colors_background | The background color used |
FAQs
React Multi-Select with automatic checkboxes/radios
We found that react-new-input demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
CISA's KEV data is now on GitHub, offering easier access, API integration, commit history tracking, and automated updates for security teams and researchers.
Security News
Opengrep forks Semgrep to preserve open source SAST in response to controversial licensing changes.
Security News
Critics call the Node.js EOL CVE a misuse of the system, sparking debate over CVE standards and the growing noise in vulnerability databases.