glazier-react-widget-0.1.0.0: src/Glazier/React/Widgets/Input/Run.hs
module Glazier.React.Widgets.Input.Run
( run
) where
import Control.Concurrent.STM
import Control.Monad
import qualified JavaScript.Extras as JE
import qualified Pipes.Concurrent as PC
import Glazier.React.Widgets.Input
run :: PC.Output act -> Command act -> IO ()
run _ (SetPropertyCommand prop j) = JE.setProperty prop j
run output (GetPropertyCommand prop j f) = do
v <- JE.getProperty prop j
void $ atomically $ PC.send output (f v)