aboutsummaryrefslogtreecommitdiff
path: root/frontend/src/Checkout.elm
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/src/Checkout.elm')
-rw-r--r--frontend/src/Checkout.elm31
1 files changed, 22 insertions, 9 deletions
diff --git a/frontend/src/Checkout.elm b/frontend/src/Checkout.elm
index 4df20d8..216b90d 100644
--- a/frontend/src/Checkout.elm
+++ b/frontend/src/Checkout.elm
@@ -2,6 +2,7 @@ module Checkout exposing (..)
2 2
3import Browser 3import Browser
4import Browser.Navigation as Nav 4import Browser.Navigation as Nav
5import Css exposing (..)
5import Html 6import Html
6import Html.Styled exposing (..) 7import Html.Styled exposing (..)
7import Html.Styled.Attributes exposing (..) 8import Html.Styled.Attributes exposing (..)
@@ -9,9 +10,8 @@ import Html.Styled.Events exposing (..)
9import Http 10import Http
10import Json.Decode as D 11import Json.Decode as D
11import Json.Encode as Encode 12import Json.Encode as Encode
13import Styles exposing (..)
12import Tuple exposing (..) 14import Tuple exposing (..)
13import Url
14import Url.Parser as P exposing ((</>), Parser, int, oneOf, s, string)
15import Utils exposing (..) 15import Utils exposing (..)
16 16
17 17
@@ -26,6 +26,7 @@ type Status
26 = Loading 26 = Loading
27 | Loaded 27 | Loaded
28 | NotLoaded 28 | NotLoaded
29 | CheckedOut
29 30
30 31
31type Msg 32type Msg
@@ -48,7 +49,7 @@ update msg model =
48 ( model, tryCheckout model.paymentMode ) 49 ( model, tryCheckout model.paymentMode )
49 50
50 CheckoutSuccessful _ -> 51 CheckoutSuccessful _ ->
51 ( model, Cmd.none ) 52 ( { model | pageStatus = CheckedOut }, Cmd.none )
52 53
53 AmountLoaded res -> 54 AmountLoaded res ->
54 case res of 55 case res of
@@ -107,6 +108,9 @@ viewStatus s =
107 NotLoaded -> 108 NotLoaded ->
108 "Not loaded ..." 109 "Not loaded ..."
109 110
111 CheckedOut ->
112 "Checked out!"
113
110 114
111view : Model -> Html Msg 115view : Model -> Html Msg
112view model = 116view model =
@@ -115,13 +119,22 @@ view model =
115 div [] [ text <| viewStatus Loading ] 119 div [] [ text <| viewStatus Loading ]
116 120
117 _ -> 121 _ ->
118 div [] 122 div
119 [ div [] [ text <| String.fromFloat <| model.cartTotal ] 123 [ css
120 , select [] 124 [ margin auto
121 [ option [ onInput PaymentModeSelected ] [ text "Cash" ] 125 , marginTop (pct 5)
122 , option [ onInput PaymentModeSelected ] [ text "Debit Card" ] 126 , Css.width (pct 40)
123 , option [ onInput PaymentModeSelected ] [ text "Credit Card" ]
124 ] 127 ]
128 ]
129 [ div [ css [ bigHeading, marginBottom (px 20) ] ] [ text "Checkout" ]
130 , div [ css [ cardSupportingText ] ] [ text "Your total is" ]
131 , div
132 [ css [ bigHeading, fontWeight bold, marginBottom (px 20) ] ]
133 [ text <| (++) "₹ " <| String.fromFloat <| model.cartTotal ]
134 , div [ css [ cardSupportingText ] ] [ text "Select a payment mode" ]
135 , div [] [ furbyRadio "Cash" (PaymentModeSelected "Cash") ]
136 , div [] [ furbyRadio "Debit Card" (PaymentModeSelected "Debit Card") ]
137 , div [] [ furbyRadio "Credit Card" (PaymentModeSelected "Credit Card") ]
125 , div [] [ a [ href "/cart" ] [ text "Cancel" ] ] 138 , div [] [ a [ href "/cart" ] [ text "Cancel" ] ]
126 , div [] [ button [ onClick CheckoutPressed ] [ text "Confirm and Pay" ] ] 139 , div [] [ button [ onClick CheckoutPressed ] [ text "Confirm and Pay" ] ]
127 ] 140 ]