{-# LANGUAGE CPP #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TypeApplications #-} module Glazier.React.Effect.HTMLElement.Exec where import Control.Monad.IO.Class import Glazier.React import Glazier.React.Effect.HTMLElement execHTMLElementCmd :: ( MonadIO m ) => HTMLElementCmd -> m () execHTMLElementCmd c = case c of Blur j -> liftIO $ js_blur j Focus j -> liftIO $ js_focus j #ifdef __GHCJS__ foreign import javascript unsafe "if ($1 && $1['focus']) { $1['focus'](); }" js_focus :: EventTarget -> IO () foreign import javascript unsafe "if ($1 && $1['blur']) { $1['blur'](); }" js_blur :: EventTarget -> IO () #else js_focus :: EventTarget -> IO () js_focus _ = pure () js_blur :: EventTarget -> IO () js_blur _ = pure () #endif