diff options
Diffstat (limited to 'frontend/src/Checkout.elm')
-rw-r--r-- | frontend/src/Checkout.elm | 31 |
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 | ||
3 | import Browser | 3 | import Browser |
4 | import Browser.Navigation as Nav | 4 | import Browser.Navigation as Nav |
5 | import Css exposing (..) | ||
5 | import Html | 6 | import Html |
6 | import Html.Styled exposing (..) | 7 | import Html.Styled exposing (..) |
7 | import Html.Styled.Attributes exposing (..) | 8 | import Html.Styled.Attributes exposing (..) |
@@ -9,9 +10,8 @@ import Html.Styled.Events exposing (..) | |||
9 | import Http | 10 | import Http |
10 | import Json.Decode as D | 11 | import Json.Decode as D |
11 | import Json.Encode as Encode | 12 | import Json.Encode as Encode |
13 | import Styles exposing (..) | ||
12 | import Tuple exposing (..) | 14 | import Tuple exposing (..) |
13 | import Url | ||
14 | import Url.Parser as P exposing ((</>), Parser, int, oneOf, s, string) | ||
15 | import Utils exposing (..) | 15 | import 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 | ||
31 | type Msg | 32 | type 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 | ||
111 | view : Model -> Html Msg | 115 | view : Model -> Html Msg |
112 | view model = | 116 | view 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 | ] |