module Glazier.React.Component
( ReactComponent
, mkComponent
) where
import qualified Control.Disposable as CD
import qualified GHCJS.Types as J
import qualified GHCJS.Marshal.Pure as J
import qualified JavaScript.Extras.Cast as JE
newtype ReactComponent = ReactComponent J.JSVal
instance CD.Disposing ReactComponent where
disposing _ = CD.DisposeNone
instance J.IsJSVal ReactComponent
instance J.PToJSVal ReactComponent where
pToJSVal = J.jsval
instance JE.ToJS ReactComponent
mkComponent :: IO ReactComponent
mkComponent = ReactComponent <$> js_mkComponent
#ifdef __GHCJS__
foreign import javascript unsafe
"$r = hgr$mkClass();"
js_mkComponent
:: IO J.JSVal
#else
js_mkComponent :: IO J.JSVal
js_mkComponent = pure J.nullRef
#endif