git.iko.soy/rowtype-yoga/psfp
on 4e7334b help sign in
36 lines 1.1 kB history raw
1module Example (main) where
3import Prelude
5import Container.Component (mkContainer)
6import Data.Maybe (fromJust)
7import Effect (Effect)
8import Effect.Console (log)
9import Partial.Unsafe (unsafePartial)
10import React.Basic (JSX, element)
11import React.Basic.DOM as ReactDOM
12import Theme (fromTheme)
13import Theme.Default (darkTheme)
14import Web.DOM.NonElementParentNode (getElementById) as DOM
15import Web.HTML (window) as DOM
16import Web.HTML.HTMLDocument (toNonElementParentNode) as DOM
17import Web.HTML.Window (document) as DOM
20main ∷ Effect Unit
21main = do
22 container <- mkContainer
23 let appEl = element container { theme: fromTheme darkTheme, children: [] }
25 if isServerSide
26 then void (log (renderToString appEl))
27 else void do
28 window <- DOM.window
29 document <- DOM.document window
30 let node = DOM.toNonElementParentNode document
31 elem <- DOM.getElementById "app" node
32 let element' = unsafePartial (fromJust elem)
33 ReactDOM.render appEl element'
35foreign import isServerSide ∷ Boolean
36foreign import renderToString ∷ JSX -> String