sugar-form v0.0.1
🍬 sugar-form
sugar-form provides a vue-modifier-like way to simplify common React DOM event handling:
import on from 'sugar-form'
<input {...on.keydown.enter.prevent.value(value => dispatch('SUBMIT', value))}/>Usage
import on from 'sugar-form'
// Start with `on`. Then chain up sugars in any order.
<input {...on.sugar.sugar.sugar(listener)}/>
// Sugars can take args.
<input {...on(arg).sugar.sugar(arg)(listener)}/>Sugars
Event binding
on('KeyPress')Binds
keypressevent.Note: Event name must be CamelCase.
on('KeyPress KeyDown')Binds both
keypressandkeydownevents..clickShortcut for
on('Click').Supported shortcuts:
.click.keyup.keydown.keypress.change.input.submit.focus.blur
Chaining
on('Pause').keypress.keydownwill bind them all.Capture
Add
.captureto bind ALL chained events in capture phase.
Event handling
.stopCall
event.stopPropagation()before running your listener..preventCall
event.preventDefault()before running your listener.
Keyboard filtering
Note: These sugars are available for keyboard events.
.key('Enter'),.key('Enter Tab')Filter out events whose
.keyis not included..code(13),.code(13, 27)Filter out events whose
.codeis not included.Shortcuts
.enter.tab.delete.backspace.esc.space.up.down.left.right
Chaining
.key('F12').delete.backspace.code(13)
Modifier keys filtering
Note: These sugars are only available for mouse and keyboard events.
.ctrl,.alt,.shift,.metaFilter out events whose
.ctrlKey(or.altKey,.shiftKey,.metaKey) isfalse.Chaining
.click.ctrl.shiftensures ALL these modifier keys are pressed.
Transforming
.valueCall your listener with
event.target.valueinstead ofevent..numberCall your listener with
+event.target.valueinstead ofevent.
8 years ago