Module

React.Spaces

Package
purescript-react-spaces
Repository
coot/purescript-react-spaces

#SpaceF Source

newtype SpaceF a

SpaceF functor generating Free monad

Constructors

Instances

#SpaceM Source

type SpaceM = Free SpaceF Unit

Free monad which is used to build react's vDOM tree.

#cls Source

cls :: forall props. (ReactClass props) -> props -> SpaceM

Class without children.

#(^) Source

Operator alias for React.Spaces.cls (left-associative / precedence 3)

#cls' Source

cls' :: forall props. (ReactClass props) -> props -> SpaceM -> SpaceM

Class with children.

#(^^) Source

Operator alias for React.Spaces.cls' (left-associative / precedence 3)

#dCls' Source

dCls' :: forall props. (ReactClass props) -> props -> SpaceM -> SpaceM

Class with dynamic children.

#(^+) Source

Operator alias for React.Spaces.dCls' (left-associative / precedence 3)

#rDOMNode Source

rDOMNode :: String -> Array Props -> IsDynamic -> SpaceM -> SpaceM

React vDOM node. You'd rather want to use React.Spaces.DOM or React.Spaces.DOM.Dynamic.

#text Source

text :: String -> SpaceM

Text node.

#empty Source

empty :: SpaceM

Empty node.

#element Source

element :: ReactElement -> SpaceM

Single element node.

#children Source

children :: Array ReactElement -> SpaceM

Add multiple elements at once

Children can be implement using element (as sequence_ <<< map element) but this will be more performant.

#elements Source

elements :: forall f. Functor f => Foldable f => f ReactElement -> SpaceM

Alias for children.

#Propertable Source

class Propertable a  where

Members

  • with :: a -> Props -> a

    Add a property to a vDOM node.

Instances

#(!) Source

Operator alias for React.Spaces.with (left-associative / precedence 4)

Combinator which adds React.DOM.Props.Props properties to react vDOM nodes.

 div ! className "container" ! onClick clickHandler $ do text "Hello"

#withClass Source

withClass :: forall a. Propertable a => a -> String -> a

#(!.) Source

Operator alias for React.Spaces.withClass (left-associative / precedence 4)

Combinator which adds className prop.

#withId Source

withId :: forall a. Propertable a => a -> String -> a

#(!#) Source

Operator alias for React.Spaces.withId (left-associative / precedence 4)

Combinator which adds _id prop.

#render Source

render :: SpaceM -> Array ReactElement

Render SpaceM momnad as an Array ReactElement.

#renderIn Source

renderIn :: (Array ReactElement -> ReactElement) -> SpaceM -> ReactElement

Render SpaceM monad inside a wrapper element.

btn :: forall eff. ReactSpec Unit Unit eff
btn = (spec unit render)
 where
   render this =
     pure $ renderIn React.DOM.div' do
       button ! className "btn" ! onClick (handleClick this) $ do
         text "Click me!"

   handleClick thie ev = pure unit