1
0
mirror of https://github.com/fluencelabs/dashboard synced 2025-04-05 06:11:08 +00:00

69 lines
1.6 KiB
Elm
Raw Normal View History

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-12-01 17:47:52 +03:00
import BlueprintPage.View as BlueprintPage
2020-11-30 16:33:24 +03:00
import Html exposing (Html, text)
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)
, map Module (s "module" </> string)
2020-12-01 17:47:52 +03:00
, map Blueprint (s "blueprint" </> 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
case route of
Page page ->
case page of
2020-11-26 21:47:37 +03:00
"" ->
HubPage.view model
2020-11-30 14:31:03 +03:00
"hub" ->
HubPage.view model
2020-11-25 19:51:53 +03:00
_ ->
2020-11-30 16:33:24 +03:00
text ("undefined page: " ++ page)
Peer peer ->
2020-11-30 16:33:24 +03:00
text peer
2020-11-23 16:31:31 +03:00
2020-12-01 17:47:52 +03:00
Blueprint id ->
BlueprintPage.view model id
Module moduleName ->
2020-12-01 15:43:06 +03:00
ModulePage.view model moduleName
2020-11-23 15:44:45 +03:00
routeCommand : Model -> Route -> Cmd msg
routeCommand m r =
case r of
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-12-01 17:47:52 +03:00
Blueprint string ->
2020-12-01 14:03:25 +03:00
sendAir (DiscoverPeers.air m.peerId m.relayId)
Module string ->
2020-12-01 14:03:25 +03:00
sendAir (DiscoverPeers.air m.peerId m.relayId)