@@ -11,6 +11,7 @@ import Functora.Miso.Prelude
11
11
import qualified Functora.Miso.Widgets.BrowserLink as BrowserLink
12
12
import qualified Functora.Miso.Widgets.Field as Field
13
13
import qualified Functora.Miso.Widgets.FieldPairs as FieldPairs
14
+ import qualified Functora.Miso.Widgets.Grid as Grid
14
15
import qualified Functora.Miso.Widgets.Header as Header
15
16
import qualified Functora.Miso.Widgets.Qr as Qr
16
17
import qualified Material.Button as Button
@@ -58,64 +59,66 @@ mainWidget st =
58
59
screenWidget :: Model -> [View Action ]
59
60
screenWidget st@ Model {modelState = St {stCpt = Just {}}} =
60
61
case st ^. # modelState . # stScreen of
61
- QrCode sc ->
62
+ QrCode sc -> do
63
+ let out =
64
+ toMisoString
65
+ . either impureThrow URI. render
66
+ . stUri
67
+ $ st
68
+ & # modelState
69
+ . # stScreen
70
+ %~ unQrCode
62
71
Header. headerWrapper
63
72
( Field. dynamicFieldViewer
64
73
(PushUpdate . Instant )
65
74
(st ^. # modelState . # stPre)
66
75
)
67
- <> Qr. qr
68
- Qr. Args
69
- { Qr. argsValue =
70
- toMisoString
71
- . either impureThrow URI. render
72
- . stUri
73
- $ st
74
- & # modelState
75
- . # stScreen
76
- %~ unQrCode,
77
- Qr. argsAction =
78
- PushUpdate
79
- . Instant
80
- }
81
- ( Qr. defOpts @ Action
82
- & # optsExtraWidgets
83
- .~ [ Button. raised
84
- ( Button. config
85
- & Button. setIcon (Just " login" )
86
- & Button. setAttributes [Css. fullWidth]
87
- & Button. setOnClick (setScreenAction $ unQrCode sc)
88
- )
89
- " Open"
90
- ]
91
- )
76
+ <> Qr. qr out
77
+ <> [ Grid. bigCell
78
+ $ genericFieldViewer
79
+ (PushUpdate . Instant )
80
+ (newFieldId FieldTypeText id out)
81
+ text
82
+ ]
83
+ <> [ Grid. bigCell
84
+ [ Button. raised
85
+ ( Button. config
86
+ & Button. setIcon (Just " login" )
87
+ & Button. setAttributes [Css. fullWidth]
88
+ & Button. setOnClick (setScreenAction $ unQrCode sc)
89
+ )
90
+ " Open"
91
+ ]
92
+ ]
92
93
_ ->
93
94
Decrypt. decrypt st
94
95
screenWidget st@ Model {modelState = St {stScreen = QrCode sc}} =
95
96
case stUri $ st & # modelState . # stScreen %~ unQrCode of
96
97
Left e -> impureThrow e
97
- Right uri ->
98
+ Right uri -> do
99
+ let out = toMisoString $ URI. render uri
98
100
Header. headerWrapper
99
101
( Field. dynamicFieldViewer
100
102
(PushUpdate . Instant )
101
103
(st ^. # modelState . # stPre)
102
104
)
103
- <> Qr. qr
104
- Qr. Args
105
- { Qr. argsValue = toMisoString $ URI. render uri,
106
- Qr. argsAction = PushUpdate . Instant
107
- }
108
- ( Qr. defOpts @ Action
109
- & # optsExtraWidgets
110
- .~ [ Button. raised
111
- ( Button. config
112
- & Button. setIcon (Just " login" )
113
- & Button. setAttributes [Css. fullWidth]
114
- & Button. setOnClick (setScreenAction $ unQrCode sc)
115
- )
116
- " Open"
117
- ]
118
- )
105
+ <> Qr. qr out
106
+ <> [ Grid. bigCell
107
+ $ genericFieldViewer
108
+ (PushUpdate . Instant )
109
+ (newFieldId FieldTypeText id out)
110
+ text
111
+ ]
112
+ <> [ Grid. bigCell
113
+ [ Button. raised
114
+ ( Button. config
115
+ & Button. setIcon (Just " login" )
116
+ & Button. setAttributes [Css. fullWidth]
117
+ & Button. setOnClick (setScreenAction $ unQrCode sc)
118
+ )
119
+ " Open"
120
+ ]
121
+ ]
119
122
screenWidget st@ Model {modelState = St {stScreen = Converter }} =
120
123
FieldPairs. fieldPairsViewer
121
124
FieldPairs. Args
0 commit comments