@@ -26,7 +26,7 @@ import qualified Functora.Money as Money
2626import qualified Functora.Prelude as Prelude
2727import qualified Functora.Rates as Rates
2828import qualified Functora.Web as Web
29- import Language.Javascript.JSaddle ((!) , (!!) )
29+ import Language.Javascript.JSaddle ((!) )
3030import qualified Language.Javascript.JSaddle as JS
3131import qualified Miso
3232import qualified Network.URI as URI (parseURI )
@@ -356,13 +356,12 @@ viewModel st =
356356-- https://github.com/dmjio/miso/issues/272
357357--
358358syncInputs :: 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
363362 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
366365 el <-
367366 getElementById
368367 . either impureThrow id
@@ -373,17 +372,7 @@ syncInputs st =
373372 ^. # uniqueUid
374373 elExist <- ghcjsPure $ JS. isTruthy el
375374 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
387376 unless elActive $ el ^. JS. jss (" value" :: Unicode ) (txt ^. # uniqueValue)
388377 pure txt
389378
0 commit comments