@@ -26,7 +26,7 @@ import qualified Functora.Money as Money
26
26
import qualified Functora.Prelude as Prelude
27
27
import qualified Functora.Rates as Rates
28
28
import qualified Functora.Web as Web
29
- import Language.Javascript.JSaddle ((!) , (!!) )
29
+ import Language.Javascript.JSaddle ((!) )
30
30
import qualified Language.Javascript.JSaddle as JS
31
31
import qualified Miso
32
32
import qualified Network.URI as URI (parseURI )
@@ -356,13 +356,12 @@ viewModel st =
356
356
-- https://github.com/dmjio/miso/issues/272
357
357
--
358
358
syncInputs :: Model -> JSM ()
359
- syncInputs st =
360
- void
361
- . Syb. everywhereM (Syb. mkM fun)
362
- $ modelState st
359
+ syncInputs st = do
360
+ act <- JS. global ! (" document" :: Unicode ) ! (" activeElement" :: Unicode )
361
+ void . Syb. everywhereM (Syb. mkM $ fun act) $ modelState st
363
362
where
364
- fun :: Unique Unicode -> JSM (Unique Unicode )
365
- fun txt = do
363
+ fun :: JS. JSVal -> Unique Unicode -> JSM (Unique Unicode )
364
+ fun act txt = do
366
365
el <-
367
366
getElementById
368
367
. either impureThrow id
@@ -373,17 +372,7 @@ syncInputs st =
373
372
^. # uniqueUid
374
373
elExist <- ghcjsPure $ JS. isTruthy el
375
374
when elExist $ do
376
- inps <-
377
- el
378
- ^. JS. js1
379
- (" getElementsByTagName" :: Unicode )
380
- (" input" :: Unicode )
381
- inp <- inps !! 0
382
- act <-
383
- JS. global
384
- ! (" document" :: Unicode )
385
- ! (" activeElement" :: Unicode )
386
- elActive <- JS. strictEqual inp act
375
+ elActive <- JS. strictEqual el act
387
376
unless elActive $ el ^. JS. jss (" value" :: Unicode ) (txt ^. # uniqueValue)
388
377
pure txt
389
378
0 commit comments