tutor/www/src/Route.elm

36 lines
645 B
Elm
Raw Normal View History

2023-01-09 15:00:37 -05:00
module Route exposing (Route(..), fromUrl, toUrl)
import Url exposing (Url)
import Url.Builder
import Url.Parser exposing (Parser, map, oneOf, parse, s, top)
type Route
2023-01-09 15:04:51 -05:00
= Collection
2023-01-09 15:00:37 -05:00
| DeckList
parser : Parser (Route -> a) a
parser =
oneOf
2023-01-09 15:04:51 -05:00
[ map Collection top
2023-01-09 15:00:37 -05:00
, map Collection (s "collection")
, map DeckList (s "decks")
]
toUrl : Route -> String
toUrl route =
case route of
Collection ->
Url.Builder.absolute [ "collection" ] []
DeckList ->
Url.Builder.absolute [ "decks" ] []
fromUrl : Url.Url -> Maybe Route
fromUrl url =
parse parser url