@@ -61,7 +61,7 @@ import Control.Monad.Eff (Eff())
61
61
foreign import data ReactElement :: *
62
62
63
63
-- | A reference to a component, essentially React's `this`.
64
- foreign import data ReactThis :: *
64
+ foreign import data ReactThis :: * -> * -> *
65
65
66
66
-- | An event handler. The type argument represents the type of the event.
67
67
foreign import data EventHandler :: * -> *
@@ -136,7 +136,7 @@ type EventHandlerContext eff props state result =
136
136
137
137
-- | A rendering function.
138
138
type Render props state eff =
139
- ReactThis ->
139
+ ReactThis props state ->
140
140
Eff ( props :: ReactProps props
141
141
, refs :: ReactRefs Disallowed
142
142
, state :: ReactState ReadOnly state
@@ -148,36 +148,36 @@ type ReactSpec props state eff =
148
148
{ render :: Render props state eff
149
149
, displayName :: String
150
150
, getInitialState
151
- :: ReactThis ->
151
+ :: ReactThis props state ->
152
152
Eff ( props :: ReactProps props
153
153
, state :: ReactState Disallowed state
154
154
, refs :: ReactRefs Disallowed
155
155
| eff
156
156
) state
157
157
, componentWillMount
158
- :: ReactThis ->
158
+ :: ReactThis props state ->
159
159
Eff ( props :: ReactProps props
160
160
, state :: ReactState ReadWrite state
161
161
, refs :: ReactRefs Disallowed
162
162
| eff
163
163
) Unit
164
164
, componentDidMount
165
- :: ReactThis ->
165
+ :: ReactThis props state ->
166
166
Eff ( props :: ReactProps props
167
167
, state :: ReactState ReadWrite state
168
168
, refs :: ReactRefs ReadOnly
169
169
| eff
170
170
) Unit
171
171
, componentWillReceiveProps
172
- :: ReactThis ->
172
+ :: ReactThis props state ->
173
173
props ->
174
174
Eff ( props :: ReactProps props
175
175
, state :: ReactState ReadWrite state
176
176
, refs :: ReactRefs ReadOnly
177
177
| eff
178
178
) Unit
179
179
, shouldComponentUpdate
180
- :: ReactThis ->
180
+ :: ReactThis props state ->
181
181
props ->
182
182
state ->
183
183
Eff ( props :: ReactProps props
@@ -186,7 +186,7 @@ type ReactSpec props state eff =
186
186
| eff
187
187
) Boolean
188
188
, componentWillUpdate
189
- :: ReactThis ->
189
+ :: ReactThis props state ->
190
190
props ->
191
191
state ->
192
192
Eff ( props :: ReactProps props
@@ -195,7 +195,7 @@ type ReactSpec props state eff =
195
195
| eff
196
196
) Unit
197
197
, componentDidUpdate
198
- :: ReactThis ->
198
+ :: ReactThis props state ->
199
199
props ->
200
200
state ->
201
201
Eff ( props :: ReactProps props
@@ -204,7 +204,7 @@ type ReactSpec props state eff =
204
204
| eff
205
205
) Unit
206
206
, componentWillUnmount
207
- :: ReactThis ->
207
+ :: ReactThis props state ->
208
208
Eff ( props :: ReactProps props
209
209
, state :: ReactState ReadOnly state
210
210
, refs :: ReactRefs ReadOnly
@@ -231,22 +231,22 @@ spec st renderFn =
231
231
foreign import data ReactClass :: * -> *
232
232
233
233
-- | Read the component props.
234
- foreign import getProps :: forall props eff . ReactThis -> Eff (props :: ReactProps props | eff ) props
234
+ foreign import getProps :: forall props state eff . ReactThis props state -> Eff (props :: ReactProps props | eff ) props
235
235
236
236
-- | Read the component refs.
237
- foreign import getRefs :: forall write eff . ReactThis -> Eff (refs :: ReactRefs (Read write ) | eff ) Refs
237
+ foreign import getRefs :: forall props state write eff . ReactThis props state -> Eff (refs :: ReactRefs (Read write ) | eff ) Refs
238
238
239
239
-- | Read the component children property.
240
- foreign import getChildren :: forall props eff . ReactThis -> Eff (props :: ReactProps props | eff ) (Array ReactElement )
240
+ foreign import getChildren :: forall props state eff . ReactThis props state -> Eff (props :: ReactProps props | eff ) (Array ReactElement )
241
241
242
242
-- | Write the component state.
243
- foreign import writeState :: forall state eff . ReactThis -> state -> Eff (state :: ReactState ReadWrite state | eff ) state
243
+ foreign import writeState :: forall props state eff . ReactThis props state -> state -> Eff (state :: ReactState ReadWrite state | eff ) state
244
244
245
245
-- | Read the component state.
246
- foreign import readState :: forall state write eff . ReactThis -> Eff (state :: ReactState (Read write ) state | eff ) state
246
+ foreign import readState :: forall props state write eff . ReactThis props state -> Eff (state :: ReactState (Read write ) state | eff ) state
247
247
248
248
-- | Transform the component state by applying a function.
249
- transformState :: forall state eff . ReactThis -> (state -> state ) -> Eff (state :: ReactState ReadWrite state | eff ) state
249
+ transformState :: forall props state eff . ReactThis props state -> (state -> state ) -> Eff (state :: ReactState ReadWrite state | eff ) state
250
250
transformState ctx f = do
251
251
state <- readState ctx
252
252
writeState ctx $ f state
0 commit comments