@@ -8,6 +8,7 @@ import Functora.Miso.Prelude
8
8
import qualified Functora.Miso.Widgets.BrowserLink as BrowserLink
9
9
import qualified Functora.Miso.Widgets.Field as Field
10
10
import qualified Functora.Miso.Widgets.FieldPairs as FieldPairs
11
+ import qualified Functora.Miso.Widgets.Flex as Flex
11
12
import qualified Functora.Miso.Widgets.Icon as Icon
12
13
import qualified Functora.Miso.Widgets.Spinner as Spinner
13
14
import qualified Functora.Money as Money
@@ -20,27 +21,23 @@ mainWidget st =
20
21
[ style_
21
22
[ (" margin" , " 0" ),
22
23
(" padding" , " 0" ),
23
- (" width" , " 100%" ),
24
24
(" min-height" , " 100vh" ),
25
25
(" display" , " flex" ),
26
26
(" flex-direction" , " column" ),
27
- (" justify-content" , " space-between" )
27
+ (" justify-content" , " space-between" ),
28
+ (" align-items" , " center" )
28
29
]
29
30
]
30
- $ [ header_ mempty $ Menu. menu st
31
- ]
32
- <> [ main_
33
- [ style_
34
- [ (" align-self" , " center" ),
35
- (" display" , " flex" ),
36
- (" align-items" , " center" ),
37
- (" flex-direction" , " column" )
38
- ]
31
+ $ [ header_
32
+ [ style_ [(" width" , " 100%" )]
39
33
]
40
- $ screenWidget st
34
+ $ Menu. menu st
35
+ ]
36
+ <> [ Flex. flexCol main_ id $ screenWidget st
41
37
]
42
38
<> [ footer_
43
- [style_ [(" text-align" , " center" )]]
39
+ [ style_ [(" text-align" , " center" )]
40
+ ]
44
41
$ tosWidget
45
42
: br_ mempty
46
43
: Menu. qrButton st
@@ -99,45 +96,52 @@ screenWidget st@Model {modelState = St {stScreen = Main}} =
99
96
then mempty
100
97
else buttons
101
98
)
102
- <> Asset. assetsViewer st
103
- <> totalViewer st
99
+ <> [ Flex. flexCol section_ id $ Asset. assetsViewer st <> totalViewer st
100
+ ]
104
101
<> buttons
105
102
where
106
103
assets :: [View Action ]
107
104
assets = Asset. assetsViewer st
108
105
buttons :: [View Action ]
109
106
buttons =
110
- [ button_
111
- [ onClick . PushUpdate . Instant . ImpureUpdate $ do
112
- asset <- newAsset
113
- pure
114
- $ # modelState
115
- . # stAssets
116
- %~ flip snoc asset
117
- ]
118
- [ icon Icon. IconAdd ,
119
- text " Add item"
120
- ],
121
- button_
122
- [ onClick
123
- . PushUpdate
124
- . Instant
125
- . either impureThrow Jsm. openBrowserPage
126
- $ stTeleUri st
127
- ]
128
- [ icon Icon. IconTelegram ,
129
- text " Order via Telegram"
107
+ singleton
108
+ $ Flex. flexRow
109
+ section_
110
+ id
111
+ [ button_
112
+ [ type_ " submit" ,
113
+ onClick . PushUpdate . Instant . ImpureUpdate $ do
114
+ asset <- newAsset
115
+ pure
116
+ $ # modelState
117
+ . # stAssets
118
+ %~ flip snoc asset
119
+ ]
120
+ [ icon Icon. IconAdd ,
121
+ text " Add item"
122
+ ],
123
+ button_
124
+ [ type_ " submit" ,
125
+ onClick
126
+ . PushUpdate
127
+ . Instant
128
+ . either impureThrow Jsm. openBrowserPage
129
+ $ stTeleUri st
130
+ ]
131
+ [ icon Icon. IconTelegram ,
132
+ text " Order via Telegram"
133
+ ]
130
134
]
131
- ]
132
135
133
136
totalViewer :: Model -> [View Action ]
134
137
totalViewer st =
135
138
if base == 0
136
139
then mempty
137
140
else
138
- [ h1_ mempty [text " Total" ]
139
- ]
140
- <> FieldPairs. fieldPairsViewer
141
+ singleton
142
+ $ fieldset_ mempty
143
+ $ (legend_ mempty [text " Total" ])
144
+ : FieldPairs. fieldPairsViewer
141
145
FieldPairs. defOpts
142
146
FieldPairs. Args
143
147
{ FieldPairs. argsModel = st,
0 commit comments