98 lines
3 KiB
Text
98 lines
3 KiB
Text
|
module Globals where
|
||
|
|
||
|
import Data.Function.Uncurried
|
||
|
|
||
|
import Data.Maybe (Maybe(..))
|
||
|
import Data.Nullable (Nullable, toMaybe)
|
||
|
import Data.Tuple (Tuple(..))
|
||
|
import Effect (Effect)
|
||
|
import Model (Bookmark)
|
||
|
import Prelude (Unit, pure, ($))
|
||
|
import Web.DOM (Element, Node)
|
||
|
import Web.HTML (HTMLElement, HTMLFormElement, Window)
|
||
|
import Web.XHR.FormData (FormData)
|
||
|
import Data.Newtype (class Newtype)
|
||
|
|
||
|
type App =
|
||
|
{ csrfHeaderName :: String
|
||
|
, csrfCookieName :: String
|
||
|
, csrfParamName :: String
|
||
|
, csrfToken :: String
|
||
|
, homeR :: String
|
||
|
, authRlogoutR :: String
|
||
|
, userR :: Nullable String
|
||
|
, noteR :: Nullable String
|
||
|
, dat :: AppData
|
||
|
}
|
||
|
|
||
|
type AppData =
|
||
|
{ bmarks :: Array Bookmark
|
||
|
, bmark :: Bookmark
|
||
|
, isowner :: Boolean
|
||
|
}
|
||
|
|
||
|
foreign import _app :: Fn0 App
|
||
|
|
||
|
app' :: Unit -> App
|
||
|
app' _ = runFn0 _app
|
||
|
|
||
|
foreign import _closest :: forall a. Fn4 (a -> Maybe a) (Maybe a) String Node (Maybe Node)
|
||
|
|
||
|
closest :: String -> Node -> Effect (Maybe Node)
|
||
|
closest selector node = pure $ runFn4 _closest Just Nothing selector node
|
||
|
|
||
|
foreign import _moment8601 :: Fn2 (String -> String -> Tuple String String) String (Tuple String String)
|
||
|
|
||
|
moment8601 :: String -> Effect (Tuple String String)
|
||
|
moment8601 s = pure $ runFn2 _moment8601 Tuple s
|
||
|
|
||
|
foreign import _mmoment8601 :: forall a. Fn4 (a -> Maybe a) (Maybe a) (String -> String -> Tuple String String) String (Maybe (Tuple String String))
|
||
|
|
||
|
mmoment8601 :: String -> Maybe (Tuple String String)
|
||
|
mmoment8601 s = runFn4 _mmoment8601 Just Nothing Tuple s
|
||
|
|
||
|
foreign import _innerHtml :: Fn1 HTMLElement String
|
||
|
|
||
|
innerHtml :: HTMLElement -> Effect String
|
||
|
innerHtml n = pure $ runFn1 _innerHtml n
|
||
|
|
||
|
foreign import _setInnerHtml :: Fn2 String HTMLElement HTMLElement
|
||
|
|
||
|
setInnerHtml :: String -> HTMLElement -> Effect HTMLElement
|
||
|
setInnerHtml c n = pure $ runFn2 _setInnerHtml c n
|
||
|
|
||
|
foreign import _createFormData :: Fn1 HTMLFormElement FormData
|
||
|
|
||
|
createFormData :: HTMLFormElement -> FormData
|
||
|
createFormData f = runFn1 _createFormData f
|
||
|
|
||
|
foreign import _createFormString :: Fn1 HTMLFormElement String
|
||
|
|
||
|
createFormString :: HTMLFormElement -> String
|
||
|
createFormString f = runFn1 _createFormString f
|
||
|
|
||
|
|
||
|
foreign import _createFormArray :: Fn1 HTMLFormElement (Array (Array String))
|
||
|
|
||
|
createFormArray :: HTMLFormElement -> (Array (Array String))
|
||
|
createFormArray f = runFn1 _createFormArray f
|
||
|
|
||
|
foreign import _getDataAttribute :: Fn2 String Element (Nullable String)
|
||
|
|
||
|
getDataAttribute :: String -> Element -> Effect (Maybe String)
|
||
|
getDataAttribute k n = pure $ toMaybe $ runFn2 _getDataAttribute k n
|
||
|
|
||
|
foreign import _setDataAttribute :: Fn3 String String Element Unit
|
||
|
|
||
|
setDataAttribute :: String -> String -> Element -> Effect Unit
|
||
|
setDataAttribute k v n = pure $ runFn3 _setDataAttribute k v n
|
||
|
|
||
|
foreign import _closeWindow :: Fn1 Window Unit
|
||
|
|
||
|
closeWindow :: Window -> Effect Unit
|
||
|
closeWindow win = pure $ runFn1 _closeWindow win
|
||
|
|
||
|
newtype RawHTML = RawHTML String
|
||
|
|
||
|
derive instance newtypeRawHTML :: Newtype RawHTML _
|