Skip to content

Instantly share code, notes, and snippets.

@ali-abrar
Created March 1, 2016 01:43
Show Gist options
  • Save ali-abrar/32ce23f012174e921fcf to your computer and use it in GitHub Desktop.
Save ali-abrar/32ce23f012174e921fcf to your computer and use it in GitHub Desktop.
LocalStorage in GHCJS
import Reflex.Dom
import GHCJS.DOM.Window (getLocalStorage)
import GHCJS.DOM.Storage (setItem, getItem)
import Control.Monad.IO.Class
import Data.JSString (unpack)
main :: IO ()
main = mainWidget localStorageTest
localStorageTest :: MonadWidget t m => m ()
localStorageTest = do
wv <- askWebView
el "div" $ do
t <- textInput def
set <- button "set value"
performEvent_ $ ffor (tag (current $ value t) set) $ \v -> liftIO $ do
Just s <- getLocalStorage wv
setItem s "someKey" v
el "div" $ do
get <- button "get value"
val <- performEvent $ ffor get $ \_ -> liftIO $ do
Just s <- getLocalStorage wv
fmap unpack <$> getItem s "someKey"
display =<< holdDyn Nothing val
return ()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment