rfc-0.0.0.25: src/RFC/GHCJS/Cookie.hs
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE MultiParamTypeClasses #-}
module RFC.GHCJS.Cookie
( storePermCookie
, readCookie
, ghcjsCookieScript
) where
import RFC.Miso.String (MisoString)
import RFC.Prelude
ghcjsCookieScript :: String
ghcjsCookieScript = "https://cdn.jsdelivr.net/npm/js-cookie@2/src/js.cookie.min.js"
foreign import javascript safe
"Cookies.set($1,$2,{expires:500})"
storePermCookie :: MisoString -> MisoString -> IO ()
readCookie :: (ConvertibleStrings s1 MisoString, ConvertibleStrings MisoString s2) => s1 -> IO (Maybe s2)
readCookie cookieName = do
raw <- rawReadCookie $ cs cookieName
return $ case null raw of
True -> Nothing
False -> Just $ cs raw
foreign import javascript safe
"Cookies.get($1) || ''"
rawReadCookie :: MisoString -> IO MisoString