Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,16 @@
"license": "MIT",
"devDependencies": {
"esbuild": "^0.14.49",
"parcel": "^2.6.0",
"parcel": "^2.6.2",
"process": "^0.11.10",
"purescript": "^0.15.3",
"spago": "^0.20.3"
"purescript": "^0.15.4",
"spago": "^0.20.9"
},
"dependencies": {
"ace-builds": "^1.4.11",
"big-integer": "^1.6.48",
"react": "^16.14.0",
"react-dom": "^16.14.0",
"xhr2": "^0.2.0"
"ace-builds": "^1.7.1",
"big-integer": "^1.6.51",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"xhr2": "^0.2.1"
}
}
4 changes: 2 additions & 2 deletions packages.dhall
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
let upstream =
https://github.com/purescript/package-sets/releases/download/psc-0.15.3-20220712/packages.dhall
sha256:ffc496e19c93f211b990f52e63e8c16f31273d4369dbae37c7cf6ea852d4442f
https://github.com/purescript/package-sets/releases/download/psc-0.15.4-20220723/packages.dhall
sha256:efb50561d50d0bebe01f8e5ab21cda51662cca0f5548392bafc3216953a0ed88

let overrides = {=}

Expand Down
1 change: 1 addition & 0 deletions recipes/HelloReactHooks/spago.dhall
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
, "react-basic-dom"
, "react-basic-hooks"
, "web-html"
, "web-dom"
]
, packages = ../../packages.dhall
, sources = [ "recipes/HelloReactHooks/src/**/*.purs" ]
Expand Down
27 changes: 15 additions & 12 deletions recipes/HelloReactHooks/src/Main.purs
Original file line number Diff line number Diff line change
@@ -1,27 +1,30 @@
module HelloReactHooks.Main where

import Prelude

import Data.Maybe (Maybe(..))
import Effect (Effect)
import Effect.Exception (throw)
import React.Basic.DOM (render)
import React.Basic.DOM as R
import React.Basic.DOM.Client (createRoot, renderRoot)
import React.Basic.Hooks (Component, component)
import Web.DOM.NonElementParentNode (getElementById)
import Web.HTML (window)
import Web.HTML.HTMLDocument (body)
import Web.HTML.HTMLElement (toElement)
import Web.HTML.HTMLDocument (toNonElementParentNode)
import Web.HTML.Window (document)

main :: Effect Unit
main = do
body <- body =<< document =<< window
case body of
Nothing -> throw "Could not find body."
Just b -> do
helloComponent <- mkHelloComponent
render (helloComponent {}) (toElement b)
doc <- document =<< window
root <- getElementById "root" $ toNonElementParentNode doc
case root of
Nothing -> throw "Could not find root."
Just container -> do
reactRoot <- createRoot container
app <- mkApp
renderRoot reactRoot (app {})

mkHelloComponent :: Component {}
mkHelloComponent = do
component "HelloComponent" \_ -> React.do
mkApp :: Component {}
mkApp = do
component "App" \_ -> React.do
pure (R.text "Hello!")