@@ -436,13 +436,7 @@ instance (Reflex t, MonadAdjust t m, MonadIO m, MonadHold t m, PerformEvent t m,
436 return (result0, result')
436 return (result0, result')
437 traverseDMapWithKeyWithAdjust (f :: forall a. k a -> v a -> ImmediateDomBuilderT t m (v' a)) (dm0 :: DMap k v) dm' = do
437 traverseDMapWithKeyWithAdjust (f :: forall a. k a -> v a -> ImmediateDomBuilderT t m (v' a)) (dm0 :: DMap k v) dm' = do
438 initialEnv <- ImmediateDomBuilderT ask
438 initialEnv <- ImmediateDomBuilderT ask
439− let drawChildUpdate :: forall a. ImmediateDomBuilderT t m (v' a) -> m (Compose ((,,) DOM.DocumentFragment DOM.Text) v' a)
440− drawChildUpdate child = do
441− Just df <- createDocumentFragment $ _immediateDomBuilderEnv_document initialEnv
442− runImmediateDomBuilderT (Compose <$> ((,,) <$> pure df <*> textNodeInternal ("" :: Text) <*> child)) $ initialEnv
443− { _immediateDomBuilderEnv_parent = toNode df
445− (children0, children') <- lift $ traverseDMapWithKeyWithAdjust (\k v -> drawChildUpdate $ f k v) dm0 dm'
439+ (children0, children') <- lift $ traverseDMapWithKeyWithAdjust (\k v -> drawChildUpdate initialEnv $ f k v) dm0 dm'
446 let result0 = DMap.map (\(Compose (_, _, v)) -> v) children0
440 let result0 = DMap.map (\(Compose (_, _, v)) -> v) children0
447 placeholders0 = weakenDMapWith (\(Compose (_, ph, _)) -> ph) children0
441 placeholders0 = weakenDMapWith (\(Compose (_, ph, _)) -> ph) children0
448 result' = ffor children' $ mapPatchDMap $ \(Compose (_, _, r)) -> r
442 result' = ffor children' $ mapPatchDMap $ \(Compose (_, _, r)) -> r
@@ -462,13 +456,7 @@ instance (Reflex t, MonadAdjust t m, MonadIO m, MonadHold t m, PerformEvent t m,
462 return (result0, result')
456 return (result0, result')
463 traverseDMapWithKeyWithAdjustWithMove (f :: forall a. k a -> v a -> ImmediateDomBuilderT t m (v' a)) (dm0 :: DMap k v) dm' = do
457 traverseDMapWithKeyWithAdjustWithMove (f :: forall a. k a -> v a -> ImmediateDomBuilderT t m (v' a)) (dm0 :: DMap k v) dm' = do
464 initialEnv <- ImmediateDomBuilderT ask
458 initialEnv <- ImmediateDomBuilderT ask
465− let drawChildUpdate :: forall a. ImmediateDomBuilderT t m (v' a) -> m (Compose ((,,) DOM.DocumentFragment DOM.Text) v' a)
466− drawChildUpdate child = do
467− Just df <- createDocumentFragment $ _immediateDomBuilderEnv_document initialEnv
468− runImmediateDomBuilderT (Compose <$> ((,,) <$> pure df <*> textNodeInternal ("" :: Text) <*> child)) $ initialEnv
469− { _immediateDomBuilderEnv_parent = toNode df
471− (children0, children') <- lift $ traverseDMapWithKeyWithAdjustWithMove (\k v -> drawChildUpdate $ f k v) dm0 dm'
459+ (children0, children') <- lift $ traverseDMapWithKeyWithAdjustWithMove (\k v -> drawChildUpdate initialEnv $ f k v) dm0 dm'
472 let result0 = DMap.map (\(Compose (_, _, v)) -> v) children0
460 let result0 = DMap.map (\(Compose (_, _, v)) -> v) children0
473 placeholders0 = weakenDMapWith (\(Compose (_, ph, _)) -> ph) children0
461 placeholders0 = weakenDMapWith (\(Compose (_, ph, _)) -> ph) children0
474 result' = ffor children' $ mapPatchDMapWithMove $ \(Compose (_, _, r)) -> r
462 result' = ffor children' $ mapPatchDMapWithMove $ \(Compose (_, _, r)) -> r
@@ -508,6 +496,11 @@ instance (Reflex t, MonadAdjust t m, MonadIO m, MonadHold t m, PerformEvent t m,
508 return ()
496 return ()
509 return (result0, result')
497 return (result0, result')
499+drawChildUpdate :: MonadIO m => ImmediateDomBuilderEnv t -> ImmediateDomBuilderT t m (v' a) -> m (Compose ((,,) DOM.DocumentFragment DOM.Text) v' a)
500+drawChildUpdate initialEnv child = do
501+ Just df <- createDocumentFragment $ _immediateDomBuilderEnv_document initialEnv
502+ runImmediateDomBuilderT (Compose <$> ((,,) <$> pure df <*> textNodeInternal ("" :: Text) <*> child)) $ initialEnv { _immediateDomBuilderEnv_parent = toNode df }
511mkHasFocus :: (MonadHold t m, Reflex t) => Element er d t -> m (Dynamic t Bool)
504mkHasFocus :: (MonadHold t m, Reflex t) => Element er d t -> m (Dynamic t Bool)
512mkHasFocus e = do
505mkHasFocus e = do
513 let initialFocus = False --TODO: Actually get the initial focus of the element
506 let initialFocus = False --TODO: Actually get the initial focus of the element