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