2020-11-23 15:44:45 +03:00
|
|
|
module Route exposing (..)
|
|
|
|
|
2020-11-30 21:23:05 +03:00
|
|
|
import AirScripts.DiscoverPeers as DiscoverPeers
|
2020-11-30 16:33:24 +03:00
|
|
|
import Html exposing (Html, text)
|
2020-11-25 05:20:20 +03:00
|
|
|
import HubPage.View as HubPage
|
2020-11-23 16:31:31 +03:00
|
|
|
import Model exposing (Model, Route(..))
|
2020-12-01 15:43:06 +03:00
|
|
|
import ModulePage.View as ModulePage
|
2020-11-23 15:44:45 +03:00
|
|
|
import Port exposing (sendAir)
|
|
|
|
import Url.Parser exposing ((</>), Parser, map, oneOf, s, string)
|
|
|
|
|
|
|
|
|
|
|
|
routeParser : Parser (Route -> a) a
|
|
|
|
routeParser =
|
|
|
|
oneOf
|
|
|
|
[ map Peer (s "peer" </> string)
|
2020-11-28 18:16:57 +03:00
|
|
|
, map Module (s "module" </> string)
|
|
|
|
, map Service (s "service" </> string)
|
2020-11-23 15:44:45 +03:00
|
|
|
, map Page string
|
|
|
|
]
|
|
|
|
|
|
|
|
|
2020-11-23 16:31:31 +03:00
|
|
|
parse url =
|
|
|
|
Maybe.withDefault (Page "") <| Url.Parser.parse routeParser url
|
|
|
|
|
2020-11-25 19:51:53 +03:00
|
|
|
|
2020-11-25 22:11:11 +03:00
|
|
|
routeView : Model -> Route -> Html msg
|
|
|
|
routeView model route =
|
2020-11-30 21:23:05 +03:00
|
|
|
let
|
2020-12-01 14:03:25 +03:00
|
|
|
_ =
|
|
|
|
Debug.log "page" route
|
2020-11-30 21:23:05 +03:00
|
|
|
in
|
2020-11-25 05:20:20 +03:00
|
|
|
case route of
|
|
|
|
Page page ->
|
|
|
|
case page of
|
2020-11-26 21:47:37 +03:00
|
|
|
"" ->
|
2020-11-28 16:50:40 +03:00
|
|
|
HubPage.view model
|
2020-11-30 14:31:03 +03:00
|
|
|
|
2020-11-25 05:20:20 +03:00
|
|
|
"hub" ->
|
2020-11-28 16:50:40 +03:00
|
|
|
HubPage.view model
|
2020-11-25 19:51:53 +03:00
|
|
|
|
2020-11-25 05:20:20 +03:00
|
|
|
_ ->
|
2020-11-30 16:33:24 +03:00
|
|
|
text ("undefined page: " ++ page)
|
2020-11-25 05:20:20 +03:00
|
|
|
|
|
|
|
Peer peer ->
|
2020-11-30 16:33:24 +03:00
|
|
|
text peer
|
2020-11-23 16:31:31 +03:00
|
|
|
|
2020-11-28 18:16:57 +03:00
|
|
|
Service serviceId ->
|
2020-12-01 15:43:06 +03:00
|
|
|
text serviceId
|
2020-11-28 18:16:57 +03:00
|
|
|
|
|
|
|
Module moduleName ->
|
2020-12-01 15:43:06 +03:00
|
|
|
ModulePage.view model moduleName
|
|
|
|
|
2020-11-28 18:16:57 +03:00
|
|
|
|
2020-11-30 14:31:03 +03:00
|
|
|
|
2020-11-23 15:44:45 +03:00
|
|
|
routeCommand : Model -> Route -> Cmd msg
|
|
|
|
routeCommand m r =
|
|
|
|
case r of
|
2020-11-25 05:20:20 +03:00
|
|
|
Page s ->
|
2020-11-30 21:23:05 +03:00
|
|
|
sendAir (DiscoverPeers.air m.peerId m.relayId)
|
2020-11-23 15:44:45 +03:00
|
|
|
|
|
|
|
Peer _ ->
|
2020-12-01 14:03:25 +03:00
|
|
|
sendAir (DiscoverPeers.air m.peerId m.relayId)
|
2020-11-28 18:16:57 +03:00
|
|
|
|
|
|
|
Service string ->
|
2020-12-01 14:03:25 +03:00
|
|
|
sendAir (DiscoverPeers.air m.peerId m.relayId)
|
2020-11-28 18:16:57 +03:00
|
|
|
|
|
|
|
Module string ->
|
2020-12-01 14:03:25 +03:00
|
|
|
sendAir (DiscoverPeers.air m.peerId m.relayId)
|