File tree Expand file tree Collapse file tree 1 file changed +25
-2
lines changed Expand file tree Collapse file tree 1 file changed +25
-2
lines changed Original file line number Diff line number Diff line change 11module React.Basic.Hooks.Aff
22 ( useAff
3+ , useSteppingAff
34 , UseAff (..)
45 , useAffReducer
56 , AffReducer
@@ -37,11 +38,33 @@ useAff ::
3738 deps ->
3839 Aff a ->
3940 Hook (UseAff deps a ) (Maybe a )
40- useAff deps aff =
41+ useAff = useAff' (const Nothing )
42+
43+ -- | A variant of `useAff` where the asynchronous effect's result is preserved up
44+ -- | until the next run of the asynchronous effect _completes_.
45+ -- |
46+ -- | Contrast this with `useAff`, where the asynchronous effect's result is
47+ -- | preserved only up until the next run of the asynchronous effect _starts_.
48+ useSteppingAff ::
49+ forall deps a .
50+ Eq deps =>
51+ deps ->
52+ Aff a ->
53+ Hook (UseAff deps a ) (Maybe a )
54+ useSteppingAff = useAff' identity
55+
56+ useAff' ::
57+ forall deps a .
58+ Eq deps =>
59+ (Maybe (Either Error a ) -> Maybe (Either Error a )) ->
60+ deps ->
61+ Aff a ->
62+ Hook (UseAff deps a ) (Maybe a )
63+ useAff' initUpdater deps aff =
4164 coerceHook React .do
4265 result /\ setResult <- useState Nothing
4366 useEffect deps do
44- setResult (const Nothing )
67+ setResult initUpdater
4568 fiber <-
4669 launchAff do
4770 r <- try aff
You can’t perform that action at this time.
0 commit comments