react-input-with-html
A react input component that uses contenteditable on a div to display the input value with html cut in for that touch of fancy
Install
npm install --save react-input-with-html
Usage
This is starting as a bit of a custom thing for Stocksy, but I plan on making it into a more broadly useful library.
Most of the custom props and usage just arn't in this readme.
Use this at your own risk for now.
// have to import style sheet for basic input styles and special hex option style
Available props
prop | description | type |
---|---|---|
id | required: unique id | String |
modifierArr | required: more on this below | Array of Objects |
disabled | use true to disable editing | Boolean |
onChange | required: react hook for keeping input state | Function |
onBlur | called whenever the html element is blurred | Function |
onFocus | event fires when an element has received focus | Function |
onKeyUp | called whenever a key is released | Function |
onKeyDown | called whenever a key is pressed | Function |
spellCheck | toggles auto underlining spelling errors | Boolean |
hexDot | info for how to show hex dots after hex codes | Obj |
hexDot obj = { enable: boolean style: { width: string height: string top: string left: string } }
Modifier Arr
This is the customizable part of this component.
You need to pass an Array of ModifierObj(s) see type below
type ModifierObj = {
regexMatch: RegExp
htmlModification: string | Function // need better function definition, it has to return a html represented as string
}
The regexMatch is a regular expression to find the instances you want to modify
The htmlModification is the string that includes the html for what you're changing it to. This can be a string or a function that returns the string.
put examples here...
Playground
will be more of a playground in the future
Important Notes
don't use v1 of this library. It's a very limited concept with lots of bugs.
License
MIT © cbot83