Skip to content

Commit 660107f

Browse files
committed
wip
1 parent ce4c2b9 commit 660107f

File tree

4 files changed

+60
-26
lines changed

4 files changed

+60
-26
lines changed

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

Lines changed: 26 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ 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.Icon as Icon
1112

1213
assetsViewer :: Model -> [View Action]
1314
assetsViewer st = do
@@ -32,9 +33,30 @@ assetViewer st idx =
3233
]
3334
]
3435
<> ( Dialog.dialog
35-
( Dialog.defOpts
36+
( Dialog.defOpts @Model @Action
3637
& #optsTitle
3738
.~ Just title
39+
& #optsFooterRight
40+
.~ const
41+
[ button_
42+
[ onClick
43+
. PushUpdate
44+
. Instant
45+
$ Jsm.removeAt
46+
( #modelState . #stAssets
47+
)
48+
idx
49+
]
50+
[ icon Icon.IconDelete,
51+
text " Remove"
52+
],
53+
button_
54+
[ onClick closeAction
55+
]
56+
[ icon Icon.IconSave,
57+
text " Save"
58+
]
59+
]
3860
)
3961
Dialog.Args
4062
{ Dialog.argsModel = st,
@@ -43,25 +65,9 @@ assetViewer st idx =
4365
Dialog.argsContent =
4466
FieldPairs.fieldPairsEditor
4567
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-
]
68+
$ FieldPairs.defOpts
69+
& #optsAdvanced
70+
.~ False
6571
}
6672
)
6773
<> FieldPairs.fieldPairsViewer args

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

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ 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.Icon as Icon
1112
import qualified Functora.Miso.Widgets.Spinner as Spinner
1213
import qualified Functora.Money as Money
1314
import Lens.Micro ((^..))
@@ -29,12 +30,20 @@ mainWidget st =
2930
$ [ header_ mempty $ Menu.menu st
3031
]
3132
<> [ main_
32-
[style_ [("max-width", "550px")]]
33+
[ style_
34+
[ ("max-width", "550px"),
35+
("align-self", "center"),
36+
("display", "flex"),
37+
("align-items", "center"),
38+
("flex-direction", "column")
39+
]
40+
]
3341
$ screenWidget st
3442
]
3543
<> [ footer_
3644
[style_ [("text-align", "center")]]
3745
$ tosWidget
46+
: br_ mempty
3847
: Menu.qrButton st
3948
: Menu.linksWidget st
4049
]
@@ -104,7 +113,8 @@ screenWidget st@Model {modelState = St {stScreen = Main}} =
104113
. #stAssets
105114
%~ flip snoc asset
106115
]
107-
[ text "Add item"
116+
[ icon Icon.IconAdd,
117+
text " Add item"
108118
],
109119
button_
110120
[ onClick
@@ -113,7 +123,8 @@ screenWidget st@Model {modelState = St {stScreen = Main}} =
113123
. either impureThrow Jsm.openBrowserPage
114124
$ stTeleUri st
115125
]
116-
[ text "Order via Telegram"
126+
[ icon Icon.IconTelegram,
127+
text " Order via Telegram"
117128
]
118129
]
119130

ghcjs/miso-functora/src/Functora/Miso/Widgets/FieldPairs.hs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -125,14 +125,15 @@ fieldPairEditor
125125
Field.argsEmitter = emitter
126126
}
127127
( Field.defOpts
128-
& #optsPlaceholder
129-
.~ ( fromMaybe ("#" <> inspect (idx + 1))
128+
& #optsLabel
129+
.~ Just
130+
( fromMaybe ("#" <> inspect (idx + 1))
130131
$ st
131132
^? cloneTraversal optic
132133
. ix idx
133134
. #fieldPairKey
134135
. #fieldOutput
135-
)
136+
)
136137
)
137138
fieldPairEditor
138139
Args

ghcjs/miso-functora/src/Functora/Miso/Widgets/Icon.hs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,11 @@ data Icon
2424
| IconGit
2525
| IconBitcoin
2626
| IconUser
27+
| IconCopy
28+
| IconAdd
29+
| IconTelegram
30+
| IconDelete
31+
| IconSave
2732
deriving stock (Eq, Ord, Show, Read, Data, Generic, Enum, Bounded)
2833

2934
class (From Icon a) => IsIcon a where
@@ -45,6 +50,11 @@ data Fa
4550
| FaGitAlt
4651
| FaBitcoin
4752
| FaUser
53+
| FaCopy
54+
| FaSquarePlus
55+
| FaTelegram
56+
| FaTrash
57+
| FaFloppyDisk
4858
deriving stock (Eq, Ord, Show, Read, Data, Generic, Enum, Bounded)
4959

5060
instance From Icon Fa where
@@ -64,6 +74,11 @@ instance From Icon Fa where
6474
IconGit -> FaGitAlt
6575
IconBitcoin -> FaBitcoin
6676
IconUser -> FaUser
77+
IconCopy -> FaCopy
78+
IconAdd -> FaSquarePlus
79+
IconTelegram -> FaTelegram
80+
IconDelete -> FaTrash
81+
IconSave -> FaFloppyDisk
6782

6883
instance IsIcon Fa where
6984
icon x =
@@ -74,6 +89,7 @@ instance IsIcon Fa where
7489
FaAndroid -> brand
7590
FaGitAlt -> brand
7691
FaBitcoin -> brand
92+
FaTelegram -> brand
7793
_ -> solid,
7894
class_
7995
. from @String @Unicode

0 commit comments

Comments
 (0)