File tree Expand file tree Collapse file tree 1 file changed +38
-9
lines changed Expand file tree Collapse file tree 1 file changed +38
-9
lines changed Original file line number Diff line number Diff line change 11import { ImmerCreator } from './immer-store'
22
3- type PositionState = { position : { x : number ; y : number } }
3+ type State = {
4+ position : {
5+ x : number
6+ y : number
7+ }
8+ }
49
5- type PositionActions = {
6- setPosition : ( { x, y } : { x : number ; y : number } ) => void
7- setPositionX : ( x : number ) => void
10+ type Actions = {
11+ setPosition : ( x : number , y : number ) => void
12+ setX : ( x : number ) => void
13+ setY : ( y : number ) => void
14+ moveBy : ( deltaX : number , deltaY : number ) => void
15+ reset : ( ) => void
816}
917
10- export type PositionSlice = PositionState & PositionActions
18+ export type PositionSlice = State & Actions
1119
1220export const createPositionSlice : ImmerCreator < PositionSlice > = ( set ) => ( {
1321 position : { x : 0 , y : 0 } ,
14- setPosition : ( { x, y } : { x : number ; y : number } ) =>
15- set ( ( state ) => ( { position : { ...state . position , x, y } } ) ) ,
16- setPositionX : ( x : number ) => {
22+
23+ setPosition : ( x : number , y : number ) =>
1724 set ( ( state ) => {
1825 state . position . x = x
26+ state . position . y = y
27+ } ) ,
28+
29+ setX : ( x : number ) =>
30+ set ( ( state ) => {
31+ state . position . x = x
32+ } ) ,
33+
34+ setY : ( y : number ) =>
35+ set ( ( state ) => {
36+ state . position . y = y
37+ } ) ,
38+
39+ moveBy : ( deltaX : number , deltaY : number ) =>
40+ set ( ( state ) => {
41+ state . position . x += deltaX
42+ state . position . y += deltaY
43+ } ) ,
44+
45+ reset : ( ) =>
46+ set ( ( state ) => {
47+ state . position . x = 0
48+ state . position . y = 0
1949 } )
20- }
2150} )
You can’t perform that action at this time.
0 commit comments