Skip to content

Instantly share code, notes, and snippets.

@imalsogreg
Created August 17, 2016 13:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save imalsogreg/dddda3e5f78b7bf8af5f6c63c21128ac to your computer and use it in GitHub Desktop.
Save imalsogreg/dddda3e5f78b7bf8af5f6c63c21128ac to your computer and use it in GitHub Desktop.
reflex-dom refactor compat
-- webcamWidget :: (DomBuilderSpace m ~ GhcjsDomSpace, PostBuild t m, m ~ ImmediateDomBuilderT t (Performable m)) => m ()
webcamWidget :: MonadWidget t m => m ()
webcamWidget = mdo
pb <- getPostBuild
doc <- askDocument
vidAttrs <- holdDyn Nothing streamUrl >>= mapDyn
(\u -> "autoplay" =: "true" <> maybe mempty ("src" =:) u)
vid <- fst <$> elDynAttr' "video" vidAttrs (return ())
streamUrl <- performEvent $ ffor pb $ \() -> liftIO $ do
Just win <- currentWindow
Just nav <- getNavigator win
let htmlVid = castToHTMLVideoElement (_el_element vid)
dict <- Dictionary <$> toJSVal_aeson (A.object [T.pack "video" A..= ("true" :: String)])
stream <- getUserMedia nav (Just dict)
createObjectURLStream' (Just stream)
return ()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment