{-# LANGUAGE PatternSynonyms #-} module Language.Javascript.JSaddle.DOM.Generated.NotificationCenter (createNotification, checkPermission, requestPermission, NotificationCenter, castToNotificationCenter, gTypeNotificationCenter) where import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, realToFrac, fmap, Show, Read, Eq, Ord, Maybe(..)) import Data.Typeable (Typeable) import Language.Javascript.JSaddle (JSM(..), JSVal(..), JSString, strictEqual, toJSVal, valToStr, valToNumber, valToBool, js, jss, jsf, jsg, function, new, array) import Data.Int (Int64) import Data.Word (Word, Word64) import Language.Javascript.JSaddle.DOM.Types import Control.Applicative ((<$>)) import Control.Monad (void) import Control.Lens.Operators ((^.)) import Language.Javascript.JSaddle.DOM.EventTargetClosures (EventName, unsafeEventName) import Language.Javascript.JSaddle.DOM.Enums -- | createNotification :: (MonadDOM m, ToJSString iconUrl, ToJSString title, ToJSString body) => NotificationCenter -> iconUrl -> title -> body -> m (Maybe Notification) createNotification self iconUrl title body = liftDOM ((self ^. jsf "createNotification" [toJSVal iconUrl, toJSVal title, toJSVal body]) >>= fromJSVal) -- | checkPermission :: (MonadDOM m) => NotificationCenter -> m Int checkPermission self = liftDOM (round <$> ((self ^. js "checkPermission") >>= valToNumber)) -- | requestPermission :: (MonadDOM m) => NotificationCenter -> Maybe VoidCallback -> m () requestPermission self callback = liftDOM (void (self ^. jsf "requestPermission" [toJSVal callback]))