Skip to content

Commit

Permalink
dateTimeSig does not wait on upstream signals
Browse files Browse the repository at this point in the history
  • Loading branch information
bbarker committed Mar 9, 2020
1 parent 8e2e766 commit d02263f
Showing 1 changed file with 18 additions and 12 deletions.
30 changes: 18 additions & 12 deletions src/Main.purs
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ import Concur.React (HTML)
import Concur.React.DOM as D
import Concur.React.Props as P
import Concur.React.Run (runWidgetInDom)
import Control.Alt((<|>))
import Control.Plus(empty)
import Data.Date (canonicalDate)
import Data.DateTime (DateTime(..))
import Data.Either (Either(..), hush)
Expand All @@ -19,6 +21,12 @@ import Effect (Effect)
import Effect.Class (liftEffect)
import Effect.Now (nowDateTime)

-- Or with a supplied initial value instead of using a Maybe
runEffectInit :: forall a. a -> Effect a -> Signal HTML a
runEffectInit i e = step i do
a <- liftEffect e
pure (step a empty)

initDate :: DateTime
initDate = makeDateTime 0 0 0 0 0 0 0

Expand Down Expand Up @@ -47,22 +55,20 @@ dateTimeWidg = do
dateTimeSig :: Signal HTML DateTime
dateTimeSig = justWait initDate (fireOnce dateTimeWidg) pure

hello :: forall a. Widget HTML a
hello = D.div' [
dyn $ do
dateTime <- dateTimeSig
let dt = show $ formatXsdDate $ dateTime
display $ D.div' [D.text dt]
pure unit
, do
void $ D.button [P.onClick] [D.text "Say Hello"]
D.text "Hello Sailor!"
]
hello :: String -> Signal HTML String
hello s = step s do
greeting <- D.div'
[ "Hello" <$ D.button [P.onClick] [D.text "Say Hello"]
, "Namaste" <$ D.button [P.onClick] [D.text "Say Namaste"]
]
_ <- D.text (greeting <> " Sailor!") <|> D.button [P.onClick] [D.text "restart"]
pure (hello greeting)

outerLoop :: Signal HTML (Maybe DateTime)
outerLoop = loopS Nothing \lastDateMay -> D.div_ [] do
helloOut <- hello "INIT"
dateTime <- dateTimeSig
display $ hello
display $ D.text helloOut
pure $ pure $ dateTime

main :: Effect Unit
Expand Down

0 comments on commit d02263f

Please sign in to comment.