@@ -23,8 +23,6 @@ module Yoga.React.Om
2323 , useId
2424 , useTransition
2525 , useDeferredValue
26− , useAff
27− , UseAff
2826 , module ReExports
2927 ) where
3028
@@ -37,12 +35,8 @@ import Control.Bind.Indexed (class IxBind, ibind)
3735import Control.Monad.Indexed (class IxMonad)
3836import Data.Functor.Indexed (class IxFunctor)
3937import Data.Newtype (class Newtype, un)
40−import Data.Either (Either(..))
41−import Data.Maybe (Maybe(..))
4238import Data.Tuple.Nested ((/\), type (/\))
4339import Effect (Effect)
44−import Effect.Aff (error, killFiber, launchAff, launchAff_, try)
45−import Effect.Aff as Aff
4640import Effect.Class (liftEffect)
4741import Effect.Ref as Ref
4842import Effect.Unsafe (unsafePerformEffect)
@@ -226,30 +220,6 @@ useDeferredValue
226220 -> OmRender ctx hooks (Hooks.UseDeferredValue a hooks) a
227221useDeferredValue a = liftRender (Hooks.useDeferredValue a)
228222
229−data UseAff :: Type -> Type -> Type -> Type
230−data UseAff deps a hooks
231−
232−useAff
233− :: forall ctx deps a hooks
234− . Eq deps
235− => deps
236− -> Om { | ctx } () a
237− -> OmRender ctx hooks (UseAff deps a hooks) (Maybe a)
238−useAff deps om = fromEffect Prelude.do
239− ctx <- toEffect (useOm @ctx Prelude.pure)
240− result /\ setResult <- toEffect (useState Nothing)
241− toEffect $ useEffect deps Prelude.do
242− setResult (const Nothing)
243− fiber <- launchAff Prelude.do
244− r <- try (Om.runOm ctx { exception: \e -> Aff.throwError e } om)
245− liftEffect (setResult \_ -> Just r)
246− Prelude.pure Prelude.do
247− launchAff_ (killFiber (error "Stale request cancelled") fiber)
248− toEffect $ liftRender $ unsafeRenderEffect case result of
249− Just (Left err) -> Aff.throwError err
250− Just (Right a) -> Prelude.pure (Just a)
251− Nothing -> Prelude.pure Nothing
252−
253223omComponent
254224 :: forall @ctx @err hooks props
255225 . String