File tree Expand file tree Collapse file tree 3 files changed +17
-11
lines changed
Expand file tree Collapse file tree 3 files changed +17
-11
lines changed Original file line number Diff line number Diff line change @@ -8,23 +8,23 @@ import { Value } from 'react-powerplug'
88
99``` jsx
1010< Value initial= " React" >
11- {({ value, setValue }) => (
11+ {({ value, set }) => (
1212 < Select
1313 label= " Choose one"
1414 options= {[' React' , ' Preact' , ' Vue' ]}
1515 value= {value}
16- onChange= {setValue }
16+ onChange= {set }
1717 / >
1818 )}
1919< / Value>
2020```
2121
2222``` jsx
2323< Value initial= " first" >
24- {({ value, setValue }) => {
24+ {({ value, set }) => {
2525 const bindRadio = radioValue => ({
2626 selected: value === radioValue,
27- onClick : () => setValue (radioValue),
27+ onClick : () => set (radioValue),
2828 })
2929
3030 return (
@@ -43,14 +43,17 @@ import { Value } from 'react-powerplug'
4343** initial** _ (required)_
4444Specifies the initial value state.
4545
46+ ** onChange** _ (optional)_
47+ Callback that fires when state changes.
48+
4649## Value Children Props
4750
48- TL;DR: ` { value, setValue } `
51+ TL;DR: ` { value, set } `
4952
5053** value**
5154` T `
5255Your value state
5356
54- ** setValue **
55- ` (value: T) => void `
56- Set the value state
57+ ** set **
58+ ` (value: T | (value: T) => T ) => void `
59+ Set or over the value state
Original file line number Diff line number Diff line change 11import * as React from 'react'
22import State from './State'
33import renderProps from '../utils/renderProps'
4+ import set from '../utils/set'
45
56const Value = ( { initial, onChange, ...props } ) => (
67 < State initial = { { value : initial } } onChange = { onChange } >
78 { ( { state, setState } ) =>
89 renderProps ( props , {
910 value : state . value ,
10- setValue : value => setState ( { value } ) ,
11+ set : value => setState ( s => ( { value : set ( value , s . value ) } ) ) ,
1112 } )
1213 }
1314 </ State >
Original file line number Diff line number Diff line change @@ -11,11 +11,13 @@ test('<Value />', () => {
1111 expect ( renderFn ) . toHaveBeenCalledTimes ( 1 )
1212
1313 expect ( lastCalled ( ) . value ) . toEqual ( { a : 1 } )
14- lastCalled ( ) . setValue ( { b : 2 } )
1514
15+ lastCalled ( ) . set ( { b : 2 } )
1616 expect ( lastCalled ( ) . value ) . toEqual ( { b : 2 } )
1717
18- lastCalled ( ) . setValue ( 0 )
18+ lastCalled ( ) . set ( value => ( { ...value , a : 1 } ) )
19+ expect ( lastCalled ( ) . value ) . toEqual ( { a : 1 , b : 2 } )
1920
21+ lastCalled ( ) . set ( 0 )
2022 expect ( lastCalled ( ) . value ) . toEqual ( 0 )
2123} )
You can’t perform that action at this time.
0 commit comments