Skip to content

Commit ce4c2b9

Browse files
committed
wip
1 parent 8bcbc0b commit ce4c2b9

File tree

5 files changed

+126
-132
lines changed

5 files changed

+126
-132
lines changed

ghcjs/delivery-calculator/src/App/Widgets/Asset.hs

Lines changed: 21 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import qualified Functora.Miso.Jsm as Jsm
88
import Functora.Miso.Prelude
99
import qualified Functora.Miso.Widgets.Dialog as Dialog
1010
import qualified Functora.Miso.Widgets.FieldPairs as FieldPairs
11-
import qualified Functora.Miso.Widgets.Grid as Grid
1211

1312
assetsViewer :: Model -> [View Action]
1413
assetsViewer st = do
@@ -42,36 +41,27 @@ assetViewer st idx =
4241
Dialog.argsOptic = modalOptic,
4342
Dialog.argsAction = PushUpdate . Instant,
4443
Dialog.argsContent =
45-
[ Grid.grid
46-
mempty
47-
$ ( FieldPairs.fieldPairsEditor
48-
args
49-
$ FieldPairs.defOpts
50-
& #optsAdvanced
51-
.~ False
52-
)
53-
<> [ Grid.mediumCell
54-
[ button_
55-
[ onClick
56-
. PushUpdate
57-
. Instant
58-
$ Jsm.removeAt
59-
( #modelState . #stAssets
60-
)
61-
idx
62-
]
63-
[ text "Remove"
64-
]
65-
],
66-
Grid.mediumCell
67-
[ button_
68-
[ onClick closeAction
69-
]
70-
[ text "Save"
71-
]
72-
]
73-
]
74-
]
44+
FieldPairs.fieldPairsEditor
45+
args
46+
( FieldPairs.defOpts & #optsAdvanced .~ False
47+
)
48+
<> [ button_
49+
[ onClick
50+
. PushUpdate
51+
. Instant
52+
$ Jsm.removeAt
53+
( #modelState . #stAssets
54+
)
55+
idx
56+
]
57+
[ text "Remove"
58+
],
59+
button_
60+
[ onClick closeAction
61+
]
62+
[ text "Save"
63+
]
64+
]
7565
}
7666
)
7767
<> FieldPairs.fieldPairsViewer args

ghcjs/delivery-calculator/src/App/Widgets/Fav.hs

Lines changed: 33 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import qualified Functora.Miso.Jsm as Jsm
1010
import Functora.Miso.Prelude
1111
import qualified Functora.Miso.Widgets.Dialog as Dialog
1212
import qualified Functora.Miso.Widgets.Field as Field
13-
import qualified Functora.Miso.Widgets.Grid as Grid
1413

1514
fav :: Model -> [View Action]
1615
fav st =
@@ -21,39 +20,35 @@ fav st =
2120
Dialog.argsOptic = #modelFav,
2221
Dialog.argsAction = PushUpdate . Instant,
2322
Dialog.argsContent =
24-
[ Grid.grid mempty
25-
$ favItems st
26-
<> [ Grid.bigCell
27-
$ Field.textField
28-
Field.Args
29-
{ Field.argsModel = st,
30-
Field.argsOptic = #modelState . #stFavName,
31-
Field.argsAction = PushUpdate . Instant,
32-
Field.argsEmitter = pushActionQueue st . Instant
33-
}
34-
Field.defOpts
35-
{ Field.optsPlaceholder = "Name",
36-
Field.optsOnKeyDownAction = onKeyDownAction,
37-
Field.optsTrailingWidget =
38-
let w =
39-
Field.ActionWidget
40-
"favorite"
41-
mempty
42-
. PushUpdate
43-
$ Instant saveAction
44-
in Just
45-
$ Field.OptsWidgetPair w w,
46-
Field.optsLeadingWidget =
47-
let w =
48-
Field.ActionWidget
49-
"delete_forever"
50-
mempty
51-
deleteAction
52-
in Just
53-
$ Field.OptsWidgetPair w w
54-
}
55-
]
56-
]
23+
favItems st
24+
<> Field.textField
25+
Field.Args
26+
{ Field.argsModel = st,
27+
Field.argsOptic = #modelState . #stFavName,
28+
Field.argsAction = PushUpdate . Instant,
29+
Field.argsEmitter = pushActionQueue st . Instant
30+
}
31+
Field.defOpts
32+
{ Field.optsPlaceholder = "Name",
33+
Field.optsOnKeyDownAction = onKeyDownAction,
34+
Field.optsTrailingWidget =
35+
let w =
36+
Field.ActionWidget
37+
"favorite"
38+
mempty
39+
. PushUpdate
40+
$ Instant saveAction
41+
in Just
42+
$ Field.OptsWidgetPair w w,
43+
Field.optsLeadingWidget =
44+
let w =
45+
Field.ActionWidget
46+
"delete_forever"
47+
mempty
48+
deleteAction
49+
in Just
50+
$ Field.OptsWidgetPair w w
51+
}
5752
}
5853
where
5954
saveAction =
@@ -112,12 +107,10 @@ favItems st =
112107

113108
favItem :: Model -> Unicode -> Fav -> View Action
114109
favItem st label Fav {favUri = uri} =
115-
Grid.bigCell
116-
[ button_
117-
[ onClick openAction
118-
]
119-
[ text label
120-
]
110+
button_
111+
[ onClick openAction
112+
]
113+
[ text label
121114
]
122115
where
123116
openAction =

ghcjs/delivery-calculator/src/App/Widgets/Main.hs

Lines changed: 32 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import Functora.Miso.Prelude
88
import qualified Functora.Miso.Widgets.BrowserLink as BrowserLink
99
import qualified Functora.Miso.Widgets.Field as Field
1010
import qualified Functora.Miso.Widgets.FieldPairs as FieldPairs
11-
import qualified Functora.Miso.Widgets.Grid as Grid
1211
import qualified Functora.Miso.Widgets.Spinner as Spinner
1312
import qualified Functora.Money as Money
1413
import Lens.Micro ((^..))
@@ -57,21 +56,17 @@ screenWidget st@Model {modelState = St {stScreen = QrCode sc}} =
5756
Field.argsEmitter = pushActionQueue st . Instant
5857
}
5958
)
60-
<> [ Grid.bigCell
61-
$ FieldPairs.fieldPairsViewer
62-
FieldPairs.Args
63-
{ FieldPairs.argsModel = st,
64-
FieldPairs.argsOptic = #modelUriViewer,
65-
FieldPairs.argsAction = PushUpdate . Instant,
66-
FieldPairs.argsEmitter = pushActionQueue st . Instant
67-
}
68-
]
69-
<> [ Grid.bigCell
70-
[ button_
71-
[ onClick . setScreenAction $ unQrCode sc
72-
]
73-
[ text "Open"
74-
]
59+
<> FieldPairs.fieldPairsViewer
60+
FieldPairs.Args
61+
{ FieldPairs.argsModel = st,
62+
FieldPairs.argsOptic = #modelUriViewer,
63+
FieldPairs.argsAction = PushUpdate . Instant,
64+
FieldPairs.argsEmitter = pushActionQueue st . Instant
65+
}
66+
<> [ button_
67+
[ onClick . setScreenAction $ unQrCode sc
68+
]
69+
[ text "Open"
7570
]
7671
]
7772
screenWidget st@Model {modelState = St {stScreen = Donate}} =
@@ -82,12 +77,10 @@ screenWidget st@Model {modelState = St {stScreen = Donate}} =
8277
FieldPairs.argsAction = PushUpdate . Instant,
8378
FieldPairs.argsEmitter = pushActionQueue st . Instant
8479
}
85-
<> [ Grid.bigCell
86-
[ button_
87-
[ onClick $ setScreenAction Main
88-
]
89-
[ text "Open"
90-
]
80+
<> [ button_
81+
[ onClick $ setScreenAction Main
82+
]
83+
[ text "Open"
9184
]
9285
]
9386
screenWidget st@Model {modelState = St {stScreen = Main}} =
@@ -103,28 +96,24 @@ screenWidget st@Model {modelState = St {stScreen = Main}} =
10396
assets = Asset.assetsViewer st
10497
buttons :: [View Action]
10598
buttons =
106-
[ Grid.mediumCell
107-
[ button_
108-
[ onClick . PushUpdate . Instant . ImpureUpdate $ do
109-
asset <- newAsset
110-
pure
111-
$ #modelState
112-
. #stAssets
113-
%~ flip snoc asset
114-
]
115-
[ text "Add item"
116-
]
99+
[ button_
100+
[ onClick . PushUpdate . Instant . ImpureUpdate $ do
101+
asset <- newAsset
102+
pure
103+
$ #modelState
104+
. #stAssets
105+
%~ flip snoc asset
106+
]
107+
[ text "Add item"
117108
],
118-
Grid.mediumCell
119-
[ button_
120-
[ onClick
121-
. PushUpdate
122-
. Instant
123-
. either impureThrow Jsm.openBrowserPage
124-
$ stTeleUri st
125-
]
126-
[ text "Order via Telegram"
127-
]
109+
button_
110+
[ onClick
111+
. PushUpdate
112+
. Instant
113+
. either impureThrow Jsm.openBrowserPage
114+
$ stTeleUri st
115+
]
116+
[ text "Order via Telegram"
128117
]
129118
]
130119

ghcjs/delivery-calculator/src/App/Widgets/Menu.hs

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -294,7 +294,12 @@ linksWidget st =
294294
]
295295
]
296296
<> Dialog.dialog
297-
Dialog.defOpts
297+
( Dialog.defOpts
298+
& #optsTitle
299+
.~ Just ("App" :: Unicode)
300+
& #optsTitleIcon
301+
.~ Just Icon.IconGooglePlay
302+
)
298303
Dialog.Args
299304
{ Dialog.argsModel = st,
300305
Dialog.argsOptic = #modelLinks,
@@ -306,58 +311,58 @@ linksWidget st =
306311
BrowserLink.Args
307312
{ BrowserLink.argsLink = testGroupLink,
308313
BrowserLink.argsLabel = "closed beta",
309-
BrowserLink.argsAction =
310-
PushUpdate
311-
. Instant
314+
BrowserLink.argsAction = PushUpdate . Instant
312315
},
313316
text " group and then install the app from ",
314317
BrowserLink.browserLink
315318
BrowserLink.Args
316319
{ BrowserLink.argsLink = googlePlayLink,
317320
BrowserLink.argsLabel = "Google Play",
318-
BrowserLink.argsAction =
319-
PushUpdate
320-
. Instant
321+
BrowserLink.argsAction = PushUpdate . Instant
321322
},
322323
text ", or download the ",
323324
BrowserLink.browserLink
324325
BrowserLink.Args
325326
{ BrowserLink.argsLink = apkLink,
326327
BrowserLink.argsLabel = "APK file",
327-
BrowserLink.argsAction =
328-
PushUpdate
329-
. Instant
328+
BrowserLink.argsAction = PushUpdate . Instant
330329
},
331330
text " directly.",
332331
button_
333332
[ onClick $ openBrowser testGroupLink
334333
]
335-
[ text "Join testing (closed beta)"
334+
[ icon Icon.IconGooglePlay,
335+
text " Join testing (closed beta)"
336336
],
337337
button_
338338
[ onClick $ openBrowser googlePlayLink
339339
]
340-
[ text "Google Play (closed beta)"
340+
[ icon Icon.IconGooglePlay,
341+
text " Google Play (closed beta)"
341342
],
342343
button_
343344
[ onClick $ openBrowser apkLink
344345
]
345-
[ text "Download APK"
346+
[ icon Icon.IconAndroid,
347+
text " Download APK"
346348
],
347349
button_
348350
[ onClick $ openBrowser sourceLink
349351
]
350-
[ text "Source"
352+
[ icon Icon.IconGit,
353+
text " Source"
351354
],
352355
button_
353356
[ onClick $ openBrowser functoraLink
354357
]
355-
[ text "Author"
358+
[ icon Icon.IconUser,
359+
text " Author"
356360
],
357361
button_
358362
[ onClick $ setScreenAction Donate
359363
]
360-
[ text "Donate"
364+
[ icon Icon.IconBitcoin,
365+
text " Donate"
361366
]
362367
]
363368
}

0 commit comments

Comments
 (0)