eml-format

This commit is contained in:
DieMyst 2020-11-26 03:00:03 +03:00
parent 46265db4c8
commit 5bac4d8e6f
5 changed files with 51 additions and 43 deletions

View File

@ -2,12 +2,13 @@ module ModulePage.Model exposing (..)
import Services.Model exposing (Service) import Services.Model exposing (Service)
type alias ModuleInfo = type alias ModuleInfo =
{ name: String { name : String
, id: String , id : String
, author: String , author : String
, authorPeerId: String , authorPeerId : String
, description: String , description : String
, website: String , website : String
, service: Service , service : Service
} }

View File

@ -5,58 +5,65 @@ import Json.Encode as Encode
import ModulePage.Model exposing (ModuleInfo) import ModulePage.Model exposing (ModuleInfo)
import Palette exposing (classes) import Palette exposing (classes)
import Services.Model exposing (Record, Signature) import Services.Model exposing (Record, Signature)
import String.Interpolate exposing(interpolate) import String.Interpolate exposing (interpolate)
view : ModuleInfo -> Html msg view : ModuleInfo -> Html msg
view moduleInfo = view moduleInfo =
Html.div [classes "cf ph2-ns"] Html.div [ classes "cf ph2-ns" ]
[ Html.span [classes "fl w-100 f1 lh-title dark-red"] [Html.text ("Module: " ++ moduleInfo.name)] [ Html.span [ classes "fl w-100 f1 lh-title dark-red" ] [ Html.text ("Module: " ++ moduleInfo.name) ]
, Html.span [classes "fl w-100 light-red"] [Html.text (moduleInfo.id)] , Html.span [ classes "fl w-100 light-red" ] [ Html.text moduleInfo.id ]
, viewInfo moduleInfo , viewInfo moduleInfo
] ]
viewInfo : ModuleInfo -> Html msg viewInfo : ModuleInfo -> Html msg
viewInfo moduleInfo = viewInfo moduleInfo =
Html.article [classes "cf"] Html.article [ classes "cf" ]
[ Html.div [classes "fl w-30 gray mv1"] [Html.text "AUTHOR"] [ Html.div [ classes "fl w-30 gray mv1" ] [ Html.text "AUTHOR" ]
, Html.div [classes "fl w-70 mv1"] [ Html.span [classes "fl w-100 black b"] [Html.text moduleInfo.author], Html.span [classes "fl w-100 black"] [Html.text moduleInfo.authorPeerId]] , Html.div [ classes "fl w-70 mv1" ] [ Html.span [ classes "fl w-100 black b" ] [ Html.text moduleInfo.author ], Html.span [ classes "fl w-100 black" ] [ Html.text moduleInfo.authorPeerId ] ]
, Html.div [classes "fl w-30 gray mv1"] [Html.text "DESCRIPTION"] , Html.div [ classes "fl w-30 gray mv1" ] [ Html.text "DESCRIPTION" ]
, Html.div [classes "fl w-70 mv1"] [ Html.span [classes "fl w-100 black"] [Html.text moduleInfo.description]] , Html.div [ classes "fl w-70 mv1" ] [ Html.span [ classes "fl w-100 black" ] [ Html.text moduleInfo.description ] ]
, Html.div [classes "fl w-30 gray mv1"] [Html.text "INTERFACE"] , Html.div [ classes "fl w-30 gray mv1" ] [ Html.text "INTERFACE" ]
, Html.div [classes "fl w-70 mv1"] [ Html.span [classes "fl w-100 black"] ((recordsView moduleInfo.service.interface.record_types) ++ (signaturesView moduleInfo.service.interface.function_signatures))] , Html.div [ classes "fl w-70 mv1" ] [ Html.span [ classes "fl w-100 black" ] (recordsView moduleInfo.service.interface.record_types ++ signaturesView moduleInfo.service.interface.function_signatures) ]
] ]
recordsView : List Record -> List (Html msg) recordsView : List Record -> List (Html msg)
recordsView record = recordsView record =
(List.map recordView record) List.map recordView record
recordView : Record -> Html msg recordView : Record -> Html msg
recordView record = recordView record =
Html.div [classes "i"] Html.div [ classes "i" ]
([Html.span [classes "fl w-100 mt2"] [Html.text (record.name ++ " {")]] ++ ([ Html.span [ classes "fl w-100 mt2" ] [ Html.text (record.name ++ " {") ] ]
fieldsView record.fields ++ ++ fieldsView record.fields
[Html.span [classes "fl w-100 mb2"] [Html.text ("}")]]) ++ [ Html.span [ classes "fl w-100 mb2" ] [ Html.text "}" ] ]
)
fieldsView : List (List String) -> List (Html msg) fieldsView : List (List String) -> List (Html msg)
fieldsView fields = fieldsView fields =
(fields |> List.map (\f -> Html.span [classes "fl w-100 ml2"] [Html.text (String.join ": " f)] )) fields |> List.map (\f -> Html.span [ classes "fl w-100 ml2" ] [ Html.text (String.join ": " f) ])
signaturesView : List Signature -> List (Html msg) signaturesView : List Signature -> List (Html msg)
signaturesView signatures = signaturesView signatures =
(List.map signatureView signatures) List.map signatureView signatures
signatureView : Signature -> Html msg signatureView : Signature -> Html msg
signatureView signature = signatureView signature =
Html.div [classes "i fl w-100 mv2"] Html.div [ classes "i fl w-100 mv2" ]
[Html.text (interpolate "fn {0}({1}) -> {2}" [signature.name, (argumentsToString signature.arguments), (outputToString signature.output_types)])] [ Html.text (interpolate "fn {0}({1}) -> {2}" [ signature.name, argumentsToString signature.arguments, outputToString signature.output_types ]) ]
argumentsToString : List (List String) -> String argumentsToString : List (List String) -> String
argumentsToString arguments = argumentsToString arguments =
String.join ", " (arguments |> List.map (String.join ": ") ) String.join ", " (arguments |> List.map (String.join ": "))
outputToString : List String -> String outputToString : List String -> String
outputToString output = outputToString output =
output |> List.head |> Maybe.withDefault "void" output |> List.head |> Maybe.withDefault "void"

View File

@ -33,12 +33,17 @@ routeView model route =
"module" -> "module" ->
let let
up = (\(pid, p) -> Maybe.map (\a -> Tuple.pair pid a) (List.head (List.drop 0 p.services))) up =
el = (List.head (List.drop 3 (Dict.toList model.discoveredPeers))) \( pid, p ) -> Maybe.map (\a -> Tuple.pair pid a) (List.head (List.drop 0 p.services))
_ = Debug.log "el" el
el =
List.head (List.drop 3 (Dict.toList model.discoveredPeers))
_ =
Debug.log "el" el
in in
case Maybe.andThen up el of case Maybe.andThen up el of
Just (peerId, service) -> Just ( peerId, service ) ->
let let
example = example =
{ name = "Chat" { name = "Chat"
@ -50,14 +55,11 @@ routeView model route =
, service = service , service = service
} }
in in
ModulePage.view example ModulePage.view example
Nothing -> Nothing ->
Html.text "alala" Html.text "alala"
_ -> _ ->
Html.text ("undefined page: " ++ page) Html.text ("undefined page: " ++ page)

View File

@ -129,7 +129,6 @@ update msg model =
updatedDict = updatedDict =
Dict.update peer up model.discoveredPeers Dict.update peer up model.discoveredPeers
in in
( { model | discoveredPeers = updatedDict }, Cmd.none ) ( { model | discoveredPeers = updatedDict }, Cmd.none )
@ -146,7 +145,6 @@ update msg model =
updatedDict = updatedDict =
Dict.update peer up model.discoveredPeers Dict.update peer up model.discoveredPeers
in in
( { model | discoveredPeers = updatedDict }, Cmd.none ) ( { model | discoveredPeers = updatedDict }, Cmd.none )

View File

@ -51,7 +51,7 @@ body model =
layout <| layout <|
List.concat List.concat
[ [ header [ classes "w-100 bt bb b--black-10" ] [ routeView model (Page "hub") ] ] [ [ header [ classes "w-100 bt bb b--black-10" ] [ routeView model (Page "hub") ] ]
++ [ header [ classes "w-100 bt bb b--black-10" ] [ routeView model (Page "module") ] ] ++ [ header [ classes "w-100 bt bb b--black-10" ] [ routeView model (Page "module") ] ]
++ [ header [ classes "w-100 bt bb b--black-10", onClick Click ] [ text "GET SERVICES" ] ] ++ [ header [ classes "w-100 bt bb b--black-10", onClick Click ] [ text "GET SERVICES" ] ]
] ]