diff options
author | Joris | 2016-06-03 20:27:16 +0200 |
---|---|---|
committer | Joris | 2016-06-03 20:27:16 +0200 |
commit | 8e3a7bf1cb83bbb6e3dcd54308eefa52a29cd679 (patch) | |
tree | d6ba0985a534a0e2e317b1edb0d4c999119d87ff /src/client/elm/Page.elm | |
parent | 3a88115d118f8256f3ff034dc359df42a9e4051c (diff) | |
download | budget-8e3a7bf1cb83bbb6e3dcd54308eefa52a29cd679.tar.gz budget-8e3a7bf1cb83bbb6e3dcd54308eefa52a29cd679.tar.bz2 budget-8e3a7bf1cb83bbb6e3dcd54308eefa52a29cd679.zip |
Migrate to elm 0.17
Diffstat (limited to 'src/client/elm/Page.elm')
-rw-r--r-- | src/client/elm/Page.elm | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/client/elm/Page.elm b/src/client/elm/Page.elm new file mode 100644 index 0000000..7cfbbc7 --- /dev/null +++ b/src/client/elm/Page.elm @@ -0,0 +1,32 @@ +module Page exposing + ( Page(..) + , toHash + , fromHash + ) + +import Navigation +import UrlParser exposing (..) +import String + +type Page = + Home + | Income + | Statistics + +toHash : Page -> String +toHash page = + case page of + Home -> "#" + Income -> "#income" + Statistics -> "#statistics" + +fromHash : Navigation.Location -> Result String Page +fromHash location = UrlParser.parse identity pageParser (String.dropLeft 1 location.hash) + +pageParser : Parser (Page -> a) a +pageParser = + oneOf + [ format Home (s "") + , format Income (s "income") + , format Statistics (s "statistics") + ] |