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)