@@ -61,7 +61,7 @@ import Control.Monad.Eff (Eff())
6161foreign import data ReactElement :: *
6262
6363-- | A reference to a component, essentially React's `this`.
64- foreign import data ReactThis :: *
64+ foreign import data ReactThis :: * -> * -> *
6565
6666-- | An event handler. The type argument represents the type of the event.
6767foreign import data EventHandler :: * -> *
@@ -136,7 +136,7 @@ type EventHandlerContext eff props state result =
136136
137137-- | A rendering function.
138138type Render props state eff =
139- ReactThis ->
139+ ReactThis props state ->
140140 Eff ( props :: ReactProps props
141141 , refs :: ReactRefs Disallowed
142142 , state :: ReactState ReadOnly state
@@ -148,36 +148,36 @@ type ReactSpec props state eff =
148148 { render :: Render props state eff
149149 , displayName :: String
150150 , getInitialState
151- :: ReactThis ->
151+ :: ReactThis props state ->
152152 Eff ( props :: ReactProps props
153153 , state :: ReactState Disallowed state
154154 , refs :: ReactRefs Disallowed
155155 | eff
156156 ) state
157157 , componentWillMount
158- :: ReactThis ->
158+ :: ReactThis props state ->
159159 Eff ( props :: ReactProps props
160160 , state :: ReactState ReadWrite state
161161 , refs :: ReactRefs Disallowed
162162 | eff
163163 ) Unit
164164 , componentDidMount
165- :: ReactThis ->
165+ :: ReactThis props state ->
166166 Eff ( props :: ReactProps props
167167 , state :: ReactState ReadWrite state
168168 , refs :: ReactRefs ReadOnly
169169 | eff
170170 ) Unit
171171 , componentWillReceiveProps
172- :: ReactThis ->
172+ :: ReactThis props state ->
173173 props ->
174174 Eff ( props :: ReactProps props
175175 , state :: ReactState ReadWrite state
176176 , refs :: ReactRefs ReadOnly
177177 | eff
178178 ) Unit
179179 , shouldComponentUpdate
180- :: ReactThis ->
180+ :: ReactThis props state ->
181181 props ->
182182 state ->
183183 Eff ( props :: ReactProps props
@@ -186,7 +186,7 @@ type ReactSpec props state eff =
186186 | eff
187187 ) Boolean
188188 , componentWillUpdate
189- :: ReactThis ->
189+ :: ReactThis props state ->
190190 props ->
191191 state ->
192192 Eff ( props :: ReactProps props
@@ -195,7 +195,7 @@ type ReactSpec props state eff =
195195 | eff
196196 ) Unit
197197 , componentDidUpdate
198- :: ReactThis ->
198+ :: ReactThis props state ->
199199 props ->
200200 state ->
201201 Eff ( props :: ReactProps props
@@ -204,7 +204,7 @@ type ReactSpec props state eff =
204204 | eff
205205 ) Unit
206206 , componentWillUnmount
207- :: ReactThis ->
207+ :: ReactThis props state ->
208208 Eff ( props :: ReactProps props
209209 , state :: ReactState ReadOnly state
210210 , refs :: ReactRefs ReadOnly
@@ -231,22 +231,22 @@ spec st renderFn =
231231foreign import data ReactClass :: * -> *
232232
233233-- | 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
235235
236236-- | 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
238238
239239-- | 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 )
241241
242242-- | 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
244244
245245-- | 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
247247
248248-- | 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
250250transformState ctx f = do
251251 state <- readState ctx
252252 writeState ctx $ f state
0 commit comments