packages feed

react-flux-1.1.0: example/purecss-side-menu/PageViews.hs

{-# LANGUAGE OverloadedStrings #-}

-- | The pages.  Normally each page should go into its own module, but for simplicity in this
-- example they are all defined here.
module PageViews where

import React.Flux
import Dispatcher

page1 :: ReactView ()
page1 = defineView "page 1" $ \() -> div_ $ do
    cldiv_ "header" $
        h1_ "Page 1!!"
    cldiv_ "content" $ do
        p_ $ do
            "Page 1 content. "
            clbutton_ "pure-button" (changePageTo Page2) "Change to page 2"
            "Also, try reducing the browser width to see the responsive menu."
        p_ $ do
            "You must load this file from a server.  If you did not, page changes might not work depending on your browser security settings (some features don't always work for file URLs).  Use for example "
            code_ "python3 -m http.server 8000"
            " or "
            code_ "python2 -m SimpleHTTPServer 8000"
            " from the example/purecss-side-menu directory."

page2 :: ReactView ()
page2 = defineView "page 2" $ \() -> div_ $ do
    cldiv_ "header" $
        h1_ "Just page 2"
    cldiv_ "content" $
        p_ "Page 2 content. Try the back button."

page3 :: ReactView ()
page3 = defineView "page 3" $ \() -> div_ $ do
    cldiv_ "header" $
        h1_ "Page Three"
    cldiv_ "content" $
        p_ "Page 3 content. Try the back button."