glazier-react-1.0.0.0: ReactJS binding using Glazier.Command.

Safe HaskellNone
LanguageHaskell2010

Glazier.React.Element

Description

HtmlT inspired monad for creating ReactElements

Synopsis

Documentation

data ReactElement Source #

NB. No FromJS provided. See unsafeCoerceElement below.

Instances
Show ReactElement Source # 
Instance details

Defined in Glazier.React.Element

IsString ReactElement Source # 
Instance details

Defined in Glazier.React.Element

Generic ReactElement Source # 
Instance details

Defined in Glazier.React.Element

Associated Types

type Rep ReactElement :: * -> * #

NFData ReactElement Source # 
Instance details

Defined in Glazier.React.Element

Methods

rnf :: ReactElement -> () #

PToJSVal ReactElement Source # 
Instance details

Defined in Glazier.React.Element

IsJSVal ReactElement Source # 
Instance details

Defined in Glazier.React.Element

ToJS ReactElement Source # 
Instance details

Defined in Glazier.React.Element

Methods

toJS :: ReactElement -> JSVal #

Newtype ReactElement Source # 
Instance details

Defined in Glazier.React.Element

Associated Types

type O ReactElement :: * #

type Rep ReactElement Source # 
Instance details

Defined in Glazier.React.Element

type Rep ReactElement = D1 (MetaData "ReactElement" "Glazier.React.Element" "glazier-react-1.0.0.0-DAsVOnciJu1LqT93cng4yY" True) (C1 (MetaCons "ReactElement" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 JSRep)))
type O ReactElement Source # 
Instance details

Defined in Glazier.React.Element

unsafeCoerceElement :: JSVal -> ReactElement Source #

Unfortunately, ReactJS did not export an easy way to check if something is a ReactElement, although they do so in the internal code with REACT_ELEMENT_TYPE. This function allow coercing a ReactElement from a JSVal and is named unsafe as a reminder that the coersion is unchecked. This function is required when receiving ReactElement from javascript (eg in a callback) or to interface with foreign React Elements.

mkBranchElement :: JSRep -> [Property] -> [ReactElement] -> IO ReactElement Source #

Create a react element (with children) from a HashMap of properties

mkLeafElement :: JSRep -> [Property] -> IO ReactElement Source #

Create a react element (with no children) from a HashMap of properties

textElement :: JSString -> ReactElement Source #

Not an IO action because JSString is immutable

mkCombinedElements :: [ReactElement] -> IO ReactElement Source #

React only allows a single top most element. Provide a handly function to wrap a list of ReactElements inside a div if required. If there is only one element in the list, then nothing is changed.