on develop help sign in
Fix failed hydration state getting lost
commit9fa2f36e26415c7ca4c366e1fafbe2bd8c228e8d authorTom Smalley <tfsmalley@gmail.com> dateThu 17 Jan 2019, 17:55 (8 years ago) parent3702a65
1 file changed+3
reflex-dom-core/src/Reflex/Dom/Builder/Immediate.hs+3
reflex-dom-core/src/Reflex/Dom/Builder/Immediate.hs+3
@@ -276,6 +276,7 @@ localRunner (HydrationRunnerT m) s parent = do
276276 s0 <- HydrationRunnerT get
277277 (a, s') <- HydrationRunnerT $ lift $ local (\_ -> parent) $ runStateT m (s0 { _hydrationState_previousNode = s })
278278 traverse_ removeSubsequentNodes $ _hydrationState_previousNode s'
279+ HydrationRunnerT $ modify' $ \hs -> hs { _hydrationState_failed = _hydrationState_failed s' }
279280 pure a
280281
281282{-# INLINABLE runHydrationRunnerT #-}
@@ -1195,6 +1196,7 @@ hydrateTextNode doc t = do
11951196 where
11961197 go parent mLastNode = maybe (Node.getFirstChild parent) Node.getNextSibling mLastNode >>= \case
11971198 Nothing -> do
1199+ HydrationRunnerT $ modify' $ \s -> s { _hydrationState_failed = True }
11981200 n <- createTextNode doc t
11991201 insertAfterPreviousNode n
12001202 pure n
@@ -1210,6 +1212,7 @@ hydrateTextNode doc t = do
12101212 DOM.splitText_ originalNode $ fromIntegral $ T.length t
12111213 return originalNode
12121214 Nothing -> do
1215+ HydrationRunnerT $ modify' $ \s -> s { _hydrationState_failed = True }
12131216 n <- createTextNode doc t
12141217 insertAfterPreviousNode n
12151218 pure n