Module

Jelly.Hooks

Package
purescript-jelly-hooks
Repository
yukikurage/purescript-jelly-hooks

#MonadHooks Source

class MonadHooks :: (Type -> Type) -> Constraintclass (MonadEffect m) <= MonadHooks m  where

Members

Instances

#useHooks_ Source

useHooks_ :: forall m a. MonadHooks m => Signal (m a) -> m Unit

Void version of useHooks

#useIf Source

useIf :: forall m a. MonadHooks m => Signal Boolean -> m a -> m a -> m (Signal a)

Conditionally switch Signal values.

#useIf_ Source

useIf_ :: forall m a. MonadHooks m => Signal Boolean -> m a -> m a -> m Unit

Void version of useIf

#useWhen Source

useWhen :: forall m a. MonadHooks m => Signal Boolean -> m a -> m (Signal (Maybe a))

Just a when cond is true, Nothing otherwise.

#useWhen_ Source

useWhen_ :: forall m a. MonadHooks m => Signal Boolean -> m a -> m Unit

Void version of useWhen

#useEffect Source

useEffect :: forall m a. MonadHooks m => Signal (Effect a) -> m (Signal a)

Unwrap effective Signal

#useEffect_ Source

useEffect_ :: forall m a. MonadHooks m => Signal (Effect a) -> m Unit

Void version of useEffect

#useAff Source

useAff :: forall m a. MonadHooks m => Signal (Aff a) -> m (Signal (Maybe a))

Unwrap Aff Signal. If the order of the results is reversed, it is ignored.

#useAff_ Source

useAff_ :: forall m a. MonadHooks m => Signal (Aff a) -> m Unit

Void version of useAff

#useSubscriber Source

useSubscriber :: forall m e. MonadHooks m => ((e -> Effect Unit) -> Effect (Effect Unit)) -> (e -> m Unit) -> m Unit

Subscribe to some Events

#useEvent Source

useEvent :: forall m. MonadHooks m => EventTarget -> EventType -> (Event -> m Unit) -> m Unit

Subscribe to an event on an event target.

#useInterval Source

useInterval :: forall m. MonadHooks m => Int -> m Unit -> m Unit

Subscribe to interval events.

#useTimeout Source

useTimeout :: forall m. MonadHooks m => Int -> m Unit -> m Unit

Subscribe to timeout events.

#useUpdate Source

useUpdate :: forall m. MonadHooks m => Signal (m Unit) -> m Unit

A hook that runs the given effect when the signal changes. (without initialize)

#nubEq Source

nubEq :: forall m a. MonadHooks m => Eq a => Signal a -> m (Signal a)

Nub a Eq value of Signal.

#newStateEq Source

newStateEq :: forall m a. MonadHooks m => Eq a => a -> m (Tuple (Signal a) (Channel a))

#runHooks Source

runHooks :: forall m a. MonadEffect m => Hooks a -> m (Tuple a (Effect Unit))

Run a Hooks computation and return the result and a cleanup effect.

#runHooks_ Source

runHooks_ :: forall a. Hooks a -> Effect Unit

Void version of runHooks.

#liftHooks Source

liftHooks :: forall m a. MonadHooks m => Hooks a -> m a

Lift Hooks to m which has MonadHooks instance.

Modules
Jelly.Hooks