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)
type alias ModuleInfo =
{ name: String
, id: String
, author: String
, authorPeerId: String
, description: String
, website: String
, service: Service
{ name : String
, id : String
, author : String
, authorPeerId : String
, description : String
, website : String
, service : Service
}

View File

@ -5,58 +5,65 @@ import Json.Encode as Encode
import ModulePage.Model exposing (ModuleInfo)
import Palette exposing (classes)
import Services.Model exposing (Record, Signature)
import String.Interpolate exposing(interpolate)
import String.Interpolate exposing (interpolate)
view : ModuleInfo -> Html msg
view moduleInfo =
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 light-red"] [Html.text (moduleInfo.id)]
, viewInfo moduleInfo
]
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 light-red" ] [ Html.text moduleInfo.id ]
, viewInfo moduleInfo
]
viewInfo : ModuleInfo -> Html msg
viewInfo moduleInfo =
Html.article [classes "cf"]
[ 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-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-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.article [ classes "cf" ]
[ 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-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-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) ]
]
recordsView : List Record -> List (Html msg)
recordsView record =
(List.map recordView record)
List.map recordView record
recordView : Record -> Html msg
recordView record =
Html.div [classes "i"]
([Html.span [classes "fl w-100 mt2"] [Html.text (record.name ++ " {")]] ++
fieldsView record.fields ++
[Html.span [classes "fl w-100 mb2"] [Html.text ("}")]])
Html.div [ classes "i" ]
([ Html.span [ classes "fl w-100 mt2" ] [ Html.text (record.name ++ " {") ] ]
++ fieldsView record.fields
++ [ Html.span [ classes "fl w-100 mb2" ] [ Html.text "}" ] ]
)
fieldsView : List (List String) -> List (Html msg)
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 signatures =
(List.map signatureView signatures)
List.map signatureView signatures
signatureView : Signature -> Html msg
signatureView signature =
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.div [ classes "i fl w-100 mv2" ]
[ Html.text (interpolate "fn {0}({1}) -> {2}" [ signature.name, argumentsToString signature.arguments, outputToString signature.output_types ]) ]
argumentsToString : List (List String) -> String
argumentsToString arguments =
String.join ", " (arguments |> List.map (String.join ": ") )
String.join ", " (arguments |> List.map (String.join ": "))
outputToString : List String -> String
outputToString output =
output |> List.head |> Maybe.withDefault "void"

View File

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

View File

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

View File

@ -51,7 +51,7 @@ body model =
layout <|
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 "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" ] ]
]