@@ -8,10 +8,8 @@ module App.Types
8
8
newSt ,
9
9
newFieldPair ,
10
10
newFieldPairId ,
11
- mkShortUri ,
12
- unShortUri ,
13
- mkLongUri ,
14
- unLongUri ,
11
+ mkUri ,
12
+ unUri ,
15
13
emitter ,
16
14
icon ,
17
15
vsn ,
@@ -26,6 +24,7 @@ import qualified Data.ByteString.Lazy as BL
26
24
import Data.Functor.Barbie
27
25
import qualified Data.Generics as Syb
28
26
import qualified Data.Version as Version
27
+ import qualified Functora.Aes as Aes
29
28
import Functora.Cfg
30
29
import Functora.Miso.Prelude
31
30
import qualified Functora.Miso.Theme as Theme
@@ -37,7 +36,6 @@ import qualified Functora.Miso.Types as FM
37
36
import qualified Functora.Miso.Widgets.Field as Field
38
37
import qualified Functora.Miso.Widgets.Icon as Icon
39
38
import qualified Functora.Prelude as Prelude
40
- import qualified Functora.Web as Web
41
39
import qualified Paths_cryptogram as Paths
42
40
import qualified Text.URI as URI
43
41
@@ -47,9 +45,7 @@ data Model = Model
47
45
modelDonate :: OpenedOrClosed ,
48
46
modelLoading :: Bool ,
49
47
modelState :: St Unique ,
50
- modelUriViewer :: [FieldPair DynamicField Unique ],
51
- modelDonateViewer :: [FieldPair DynamicField Unique ],
52
- modelWebOpts :: Web. Opts
48
+ modelDonateViewer :: [FieldPair DynamicField Unique ]
53
49
}
54
50
deriving stock (Eq , Generic )
55
51
@@ -61,10 +57,9 @@ data Action
61
57
| PushUpdate (Update Model )
62
58
63
59
data St f = St
64
- { stPwd :: Field Unicode f ,
65
- stEncReq :: Field Unicode f ,
66
- stDecReq :: Field Unicode f ,
67
- stDecRes :: Field Unicode f ,
60
+ { stKm :: Aes. Km ,
61
+ stIkm :: Field Unicode f ,
62
+ stMsg :: Field Unicode f ,
68
63
stEnableTheme :: Bool ,
69
64
stTheme :: Theme
70
65
}
@@ -78,10 +73,6 @@ deriving stock instance (Hkt f) => Show (St f)
78
73
79
74
deriving stock instance (Hkt f ) => Data (St f )
80
75
81
- deriving via (GenericType (St f )) instance (Hkt f ) => ToQuery (St f )
82
-
83
- deriving via (GenericType (St Identity )) instance FromQuery (St Identity )
84
-
85
76
instance FunctorB St
86
77
87
78
instance TraversableB St
@@ -90,16 +81,14 @@ deriving via GenericType (St Identity) instance Binary (St Identity)
90
81
91
82
newSt :: (MonadIO m ) => m (St Unique )
92
83
newSt = do
93
- pwd <- newTextField mempty
94
- encReq <- newTextField mempty
95
- decReq <- newTextField mempty
96
- decRes <- newTextField mempty
84
+ km <- Aes. randomKm 32
85
+ ikm <- newPasswordField . decodeUtf8 $ km ^. # kmIkm . # unIkm
86
+ msg <- newTextField mempty
97
87
pure
98
88
St
99
- { stPwd = pwd,
100
- stEncReq = encReq,
101
- stDecReq = decReq,
102
- stDecRes = decRes,
89
+ { stKm = km,
90
+ stIkm = ikm,
91
+ stMsg = msg,
103
92
stEnableTheme = True ,
104
93
stTheme = Theme. Matcha
105
94
}
@@ -130,19 +119,8 @@ newFieldPairId key val = do
130
119
. # fieldOptsAllowCopy
131
120
.~ False
132
121
133
- mkShortUri :: (MonadThrow m ) => Model -> m URI
134
- mkShortUri st = do
135
- uri <- mkURI $ from @ Unicode @ Prelude. Text baseUri
136
- let qxs = toQuery . uniqueToIdentity $ modelState st
137
- pure $ uri {URI. uriQuery = qxs}
138
-
139
- unShortUri :: (MonadIO m , MonadThrow m ) => URI -> m (St Unique )
140
- unShortUri uri = do
141
- st <- either throw pure . fromQuery $ URI. uriQuery uri
142
- identityToUnique st
143
-
144
- mkLongUri :: (MonadThrow m ) => Model -> m URI
145
- mkLongUri st = do
122
+ mkUri :: (MonadThrow m ) => Model -> m URI
123
+ mkUri st = do
146
124
uri <- mkURI $ from @ Unicode @ Prelude. Text baseUri
147
125
qxs <-
148
126
stQuery
@@ -169,13 +147,13 @@ mkLongUri st = do
169
147
{ URI. uriQuery = qxs
170
148
}
171
149
172
- unLongUri ::
150
+ unUri ::
173
151
( MonadIO m ,
174
152
MonadThrow m
175
153
) =>
176
154
URI ->
177
155
m (Maybe (St Unique ))
178
- unLongUri uri = do
156
+ unUri uri = do
179
157
kSt <- URI. mkQueryKey " d"
180
158
case qsGet kSt $ URI. uriQuery uri of
181
159
Nothing -> pure Nothing
0 commit comments