blob: f06377dee3058a0caccab857742cb93e7855c967 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
module LoggedIn.Home.Search.View exposing
( view
)
import Html exposing (..)
import Html.Attributes exposing (..)
import Html.Events exposing (..)
import Html.App as Html
import Form exposing (Form)
import View.Form as Form
import Msg exposing (Msg)
import LoggedIn.Msg as LoggedInMsg
import LoggedIn.Home.Msg as HomeMsg
import LoggedData exposing (LoggedData)
import LoggedIn.Home.Model as HomeModel
import Model.Translations exposing (getParamMessage)
import Model.Conf exposing (Conf)
import Model.Payment exposing (Payments)
import LoggedIn.View.Format as Format
import View.Plural exposing (plural)
view : LoggedData -> HomeModel.Model -> Payments -> Html Msg
view loggedData { search } payments =
Html.div
[ class "search" ]
[ searchForm loggedData search
, paymentsStat loggedData payments
]
searchForm : LoggedData -> Form String HomeModel.Search -> Html Msg
searchForm loggedData search =
let htmlMap = Html.map (Msg.UpdateLoggedIn << LoggedInMsg.HomeMsg << HomeMsg.SearchMsg)
in Form.textInput loggedData.translations search htmlMap "searchText"
paymentsStat : LoggedData -> Payments -> Html Msg
paymentsStat loggedData payments =
let count = plural loggedData.translations (List.length payments) "Payment" "Payments"
sum = paymentsSum loggedData.conf payments
in text <| getParamMessage [ count, sum ] "Worth" loggedData.translations
paymentsSum : Conf -> Payments -> String
paymentsSum conf payments =
payments
|> List.map .cost
|> List.sum
|> Format.price conf
|