mirror of
https://github.com/fluencelabs/dashboard
synced 2025-03-31 04:01:03 +00:00
Page type in Model
This commit is contained in:
parent
4eac7dc2ac
commit
1adeb9afb9
@ -22,9 +22,11 @@ import Config exposing (Flags)
|
|||||||
import Dict
|
import Dict
|
||||||
import Model exposing (Model)
|
import Model exposing (Model)
|
||||||
import Msg exposing (Msg(..))
|
import Msg exposing (Msg(..))
|
||||||
|
import Route
|
||||||
import Subscriptions exposing (subscriptions)
|
import Subscriptions exposing (subscriptions)
|
||||||
import Update exposing (update)
|
import Update exposing (update)
|
||||||
import Url
|
import Url
|
||||||
|
import Url.Parser
|
||||||
import Utils.TaskExtras exposing (run)
|
import Utils.TaskExtras exposing (run)
|
||||||
import View exposing (view)
|
import View exposing (view)
|
||||||
|
|
||||||
@ -43,12 +45,16 @@ main =
|
|||||||
init : Flags -> Url.Url -> Navigation.Key -> ( Model, Cmd Msg )
|
init : Flags -> Url.Url -> Navigation.Key -> ( Model, Cmd Msg )
|
||||||
init flags url key =
|
init flags url key =
|
||||||
let
|
let
|
||||||
|
r =
|
||||||
|
Route.parse url
|
||||||
|
|
||||||
emptyModel =
|
emptyModel =
|
||||||
{ peerId = flags.peerId
|
{ peerId = flags.peerId
|
||||||
, relayId = flags.relayId
|
, relayId = flags.relayId
|
||||||
, url = url
|
, url = url
|
||||||
, key = key
|
, key = key
|
||||||
|
, page = r
|
||||||
, loadedPeers = Dict.empty
|
, loadedPeers = Dict.empty
|
||||||
}
|
}
|
||||||
in
|
in
|
||||||
( emptyModel, run <| UrlChanged url )
|
( emptyModel, Route.routeCommand emptyModel r )
|
||||||
|
@ -21,6 +21,11 @@ import Dict exposing (Dict)
|
|||||||
import Url
|
import Url
|
||||||
|
|
||||||
|
|
||||||
|
type Route
|
||||||
|
= Page String
|
||||||
|
| Peer String
|
||||||
|
|
||||||
|
|
||||||
type alias PeerData =
|
type alias PeerData =
|
||||||
{ interfaces : List String }
|
{ interfaces : List String }
|
||||||
|
|
||||||
@ -30,5 +35,6 @@ type alias Model =
|
|||||||
, relayId : String
|
, relayId : String
|
||||||
, key : Nav.Key
|
, key : Nav.Key
|
||||||
, url : Url.Url
|
, url : Url.Url
|
||||||
|
, page : Route
|
||||||
, loadedPeers : Dict String PeerData
|
, loadedPeers : Dict String PeerData
|
||||||
}
|
}
|
||||||
|
@ -2,16 +2,11 @@ module Route exposing (..)
|
|||||||
|
|
||||||
import Air exposing (call, callBI, fold, next, par, relayEvent, seq, set)
|
import Air exposing (call, callBI, fold, next, par, relayEvent, seq, set)
|
||||||
import Json.Encode as Encode
|
import Json.Encode as Encode
|
||||||
import Model exposing (Model)
|
import Model exposing (Model, Route(..))
|
||||||
import Port exposing (sendAir)
|
import Port exposing (sendAir)
|
||||||
import Url.Parser exposing ((</>), Parser, map, oneOf, s, string)
|
import Url.Parser exposing ((</>), Parser, map, oneOf, s, string)
|
||||||
|
|
||||||
|
|
||||||
type Route
|
|
||||||
= Page String
|
|
||||||
| Peer String
|
|
||||||
|
|
||||||
|
|
||||||
routeParser : Parser (Route -> a) a
|
routeParser : Parser (Route -> a) a
|
||||||
routeParser =
|
routeParser =
|
||||||
oneOf
|
oneOf
|
||||||
@ -20,6 +15,10 @@ routeParser =
|
|||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
parse url =
|
||||||
|
Maybe.withDefault (Page "") <| Url.Parser.parse routeParser url
|
||||||
|
|
||||||
|
|
||||||
routeCommand : Model -> Route -> Cmd msg
|
routeCommand : Model -> Route -> Cmd msg
|
||||||
routeCommand m r =
|
routeCommand m r =
|
||||||
case r of
|
case r of
|
||||||
|
@ -24,7 +24,6 @@ import Msg exposing (..)
|
|||||||
import Port exposing (sendAir)
|
import Port exposing (sendAir)
|
||||||
import Route
|
import Route
|
||||||
import Url
|
import Url
|
||||||
import Url.Parser
|
|
||||||
|
|
||||||
|
|
||||||
update : Msg -> Model -> ( Model, Cmd Msg )
|
update : Msg -> Model -> ( Model, Cmd Msg )
|
||||||
@ -36,7 +35,7 @@ update msg model =
|
|||||||
UrlChanged url ->
|
UrlChanged url ->
|
||||||
let
|
let
|
||||||
route =
|
route =
|
||||||
Maybe.withDefault (Route.Page "") <| Url.Parser.parse Route.routeParser url
|
Route.parse url
|
||||||
|
|
||||||
cmd =
|
cmd =
|
||||||
Route.routeCommand model route
|
Route.routeCommand model route
|
||||||
|
18
src/View.elm
18
src/View.elm
@ -24,6 +24,7 @@ import Model exposing (Model)
|
|||||||
import Msg exposing (..)
|
import Msg exposing (..)
|
||||||
import Palette exposing (classes)
|
import Palette exposing (classes)
|
||||||
|
|
||||||
|
|
||||||
view : Model -> Document Msg
|
view : Model -> Document Msg
|
||||||
view model =
|
view model =
|
||||||
{ title = title model, body = [ body model ] }
|
{ title = title model, body = [ body model ] }
|
||||||
@ -36,15 +37,18 @@ title _ =
|
|||||||
|
|
||||||
body : Model -> Html Msg
|
body : Model -> Html Msg
|
||||||
body model =
|
body model =
|
||||||
layout <|
|
layout <|
|
||||||
List.concat
|
List.concat
|
||||||
[
|
[-- TODO render the view according to model.page
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
layout : List (Html Msg) -> Html Msg
|
layout : List (Html Msg) -> Html Msg
|
||||||
layout elms =
|
layout elms =
|
||||||
div [classes "mw9 center"]
|
div [ classes "mw9 center" ]
|
||||||
[div [classes "fl w-100 pa2"] ([
|
[ div [ classes "fl w-100 pa2" ]
|
||||||
header [classes "w-100 bt bb b--black-10", onClick Click] [text "Fluence Network Dashboard"]
|
([ header [ classes "w-100 bt bb b--black-10", onClick Click ] [ text "Fluence Network Dashboard" ]
|
||||||
] ++elms)]
|
]
|
||||||
|
++ elms
|
||||||
|
)
|
||||||
|
]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user