on develop help sign in
Eliminate use of deprecated reflex functions
commitaf26151c2521c1555ac58970ec34ab829b30b245 authorRyan Trinkle <ryan.trinkle@gmail.com> dateMon 1 Aug 2016, 12:21 (10 years ago) parentcc768a7
5 files changed+20−22
src/Reflex/Dom/Builder/Immediate.hs+1−1 src/Reflex/Dom/Time.hs+1−1 src/Reflex/Dom/Widget/Basic.hs+4−4 src/Reflex/Dom/Widget/Input.hs+8−10 src/Reflex/Dom/Widget/Lazy.hs+6−6
src/Reflex/Dom/Builder/Immediate.hs+1−1
@@ -249,7 +249,7 @@ instance SupportsImmediateDomBuilder t m => DomBuilder t (ImmediateDomBuilderT t
249249 [ False <$ Reflex.select (_element_events e) (WrapArg Blur)
250250 , True <$ Reflex.select (_element_events e) (WrapArg Focus)
251251 ]
252− return $ InputElement v (nubDyn c) valueChangedByUI hasFocus e
252+ return $ InputElement v (uniqDyn c) valueChangedByUI hasFocus e
253253 {-# INLINABLE textAreaElement #-}
254254 textAreaElement cfg = do --TODO
255255 ((e, _), domElement) <- makeElement "textarea" (cfg ^. textAreaElementConfig_elementConfig) $ return ()
src/Reflex/Dom/Time.hs+1−1
@@ -179,6 +179,6 @@ inhomogeneousPoisson rnd rate maxRate t0 =
179179debounce :: (MonadFix m, MonadHold t m, PerformEvent t m, TriggerEvent t m, MonadIO (Performable m)) => NominalDiffTime -> Event t a -> m (Event t a)
180180debounce dt e = do
181181 n :: Dynamic t Integer <- count e
182− let tagged = attachDynWith (,) n e
182+ let tagged = attachPromptlyDynWith (,) n e
183183 delayed <- delay dt tagged
184184 return $ attachWithMaybe (\n' (t, v) -> if n' == t then Just v else Nothing) (current n) delayed
src/Reflex/Dom/Widget/Basic.hs+4−4
@@ -202,7 +202,7 @@ selectViewListWithKey :: forall t m k v a. (DomBuilder t m, Ord k, PostBuild t m
202202selectViewListWithKey selection vals mkChild = do
203203 let selectionDemux = demux selection -- For good performance, this value must be shared across all children
204204 selectChild <- listWithKey vals $ \k v -> do
205− selected <- getDemuxed selectionDemux k
205+ let selected = demuxed selectionDemux k
206206 selectSelf <- mkChild k v selected
207207 return $ fmap ((,) k) selectSelf
208208 return $ switchPromptlyDyn $ leftmost . Map.elems <$> selectChild
@@ -399,13 +399,13 @@ tabDisplay :: forall t m k. (MonadFix m, DomBuilder t m, MonadHold t m, PostBuil
399399tabDisplay ulClass activeClass tabItems = do
400400 let t0 = listToMaybe $ Map.keys tabItems
401401 rec currentTab :: Demux t (Maybe k) <- elAttr "ul" ("class" =: ulClass) $ do
402− tabClicksList :: [Event t k] <- Map.elems <$> imapM (\k (s,_) -> headerBarLink s k =<< getDemuxed currentTab (Just k)) tabItems
402+ tabClicksList :: [Event t k] <- Map.elems <$> imapM (\k (s,_) -> headerBarLink s k $ demuxed currentTab (Just k)) tabItems
403403 let eTabClicks :: Event t k = leftmost tabClicksList
404404 fmap demux $ holdDyn t0 $ fmap Just eTabClicks
405405 el "div" $ do
406406 iforM_ tabItems $ \k (_, w) -> do
407− isSelected <- getDemuxed currentTab $ Just k
408− attrs <- forDyn isSelected $ \s -> if s then Map.empty else Map.singleton "style" "display:none;"
407+ let isSelected = demuxed currentTab $ Just k
408+ attrs = ffor isSelected $ \s -> if s then Map.empty else Map.singleton "style" "display:none;"
409409 elDynAttr "div" attrs w
410410 return ()
411411 where
src/Reflex/Dom/Widget/Input.hs+8−10
@@ -376,13 +376,11 @@ regularToDropdownViewEventType en r = case en of
376376-- The first argument gives the initial value of the dropdown; if it is not present in the map of options provided, it will be added with an empty string as its text
377377dropdown :: forall k t m. (DomBuilder t m, MonadFix m, MonadHold t m, PerformEvent t m, MonadIO (Performable m), MonadIO m, TriggerEvent t m, PostBuild t m, DomBuilderSpace m ~ GhcjsDomSpace, Ord k) => k -> Dynamic t (Map k Text) -> DropdownConfig t k -> m (Dropdown t k)
378378dropdown k0 options (DropdownConfig setK attrs) = do
379− optionsWithAddedKeys <- combineDyn Map.union options <=< foldDyn Map.union (k0 =: "") $ fmap (=: "") setK
379+ optionsWithAddedKeys <- fmap (zipDynWith Map.union options) $ foldDyn Map.union (k0 =: "") $ fmap (=: "") setK
380380 defaultKey <- holdDyn k0 setK
381− (indexedOptions, ixKeys) <- splitDyn <=< forDyn optionsWithAddedKeys $ \os ->
382− let xs = map (\(ix, (k, v)) -> ((ix, k), ((ix, k), v))) $ zip [0::Int ..] $ Map.toList os
383− ixVals = Map.fromList $ map snd xs
384− ixKeys = Bimap.fromList $ map fst xs
385− in (ixVals, ixKeys)
381+ let (indexedOptions, ixKeys) = splitDynPure $ ffor optionsWithAddedKeys $ \os ->
382+ let xs = fmap (\(ix, (k, v)) -> ((ix, k), ((ix, k), v))) $ zip [0::Int ..] $ Map.toList os
383+ in (Map.fromList $ map snd xs, Bimap.fromList $ map fst xs)
386384 modifyAttrs <- dynamicAttributesToModifyAttributes attrs
387385 let cfg = (def :: ElementConfig EventResult t m)
388386 { _elementConfig_modifyAttributes = modifyAttrs
@@ -402,18 +400,18 @@ dropdown k0 options (DropdownConfig setK attrs) = do
402400 let optionAttrs = fmap (\dk -> "value" =: T.pack (show ix) <> if dk == k then "selected" =: "selected" else mempty) defaultKey
403401 elDynAttr "option" optionAttrs $ dynText v
404402 let e = castToHTMLSelectElement $ _element_raw eRaw
405− performEvent_ $ HTMLSelectElement.setValue e . Just . show <$> attachDynWithMaybe (flip Bimap.lookupR) ixKeys setK
403+ performEvent_ $ HTMLSelectElement.setValue e . Just . show <$> attachPromptlyDynWithMaybe (flip Bimap.lookupR) ixKeys setK
406404 let lookupSelected ks value = do
407405 v <- value
408406 key <- T.readMaybe v
409407 Bimap.lookup key ks
410− eChange <- attachDynWith lookupSelected ixKeys <$> wrapDomEvent e (`on` Element.change) (HTMLSelectElement.getValue e)
408+ eChange <- attachPromptlyDynWith lookupSelected ixKeys <$> wrapDomEvent e (`on` Element.change) (HTMLSelectElement.getValue e)
411409 let readKey keys mk = fromMaybe k0 $ do
412410 k <- mk
413411 guard $ Bimap.memberR k keys
414412 return k
415− dValue <- combineDyn readKey ixKeys <=< holdDyn (Just k0) $ leftmost [eChange, fmap Just setK]
416− return $ Dropdown dValue (attachDynWith readKey ixKeys eChange)
413+ dValue <- fmap (zipDynWith readKey ixKeys) $ holdDyn (Just k0) $ leftmost [eChange, fmap Just setK]
414+ return $ Dropdown dValue (attachPromptlyDynWith readKey ixKeys eChange)
417415
418416concat <$> mapM makeLenses
419417 [ ''TextAreaConfig
src/Reflex/Dom/Widget/Lazy.hs+6−6
@@ -54,8 +54,8 @@ virtualListWithSelection heightPx rowPx maxIndex i0 setI listTag listAttrs rowTa
5454 scrollPosition <- holdDyn 0 $ leftmost [ domEvent Scroll container
5555 , fmap (const (i0 * rowPx)) pb
5656 ]
57− window <- combineDyn (findWindow rowPx) heightPx scrollPosition
58− itemsInWindow <- combineDyn (\(_,(idx,num)) is -> Map.fromList $ map (\i -> let ix = indexToKey i in (ix, Map.lookup ix is)) [idx .. idx + num]) window items
57+ let window = zipDynWith (findWindow rowPx) heightPx scrollPosition
58+ itemsInWindow = zipDynWith (\(_,(idx,num)) is -> Map.fromList $ map (\i -> let ix = indexToKey i in (ix, Map.lookup ix is)) [idx .. idx + num]) window items
5959 postBuild <- getPostBuild
6060 performEvent_ $ ffor (leftmost [setI, i0 <$ postBuild]) $ \i -> do
6161 liftIO $ setScrollTop (_element_raw container) (i * rowPx)
@@ -70,7 +70,7 @@ virtualListWithSelection heightPx rowPx maxIndex i0 setI listTag listAttrs rowTa
7070 "top" =: (T.pack (show t) <> "px")
7171 toHeightStyle h = toStyleAttr ("height" =: (T.pack (show h) <> "px") <> "overflow" =: "hidden")
7272 tagWrapper elTag attrs attrsOverride c = do
73− attrs' <- combineDyn Map.union attrsOverride attrs
73+ let attrs' = zipDynWith Map.union attrsOverride attrs
7474 elDynAttr' elTag attrs' c
7575 findWindow sizeIncrement windowSize startingPosition =
7676 let (startingIndex, topOffsetPx) = startingPosition `divMod'` sizeIncrement
@@ -100,10 +100,10 @@ virtualList heightPx rowPx maxIndex i0 setI keyToIndex items0 itemsUpdate itemBu
100100 scrollPosition <- holdDyn 0 $ leftmost [ domEvent Scroll viewport
101101 , fmap (const (i0 * rowPx)) pb
102102 ]
103− window <- combineDyn (findWindow rowPx) heightPx scrollPosition
103+ let window = zipDynWith (findWindow rowPx) heightPx scrollPosition
104104 performEvent_ $ ffor (leftmost [setI, i0 <$ pb]) $ \i -> do
105105 liftIO $ setScrollTop (_element_raw viewport) (i * rowPx)
106− return (nubDyn window, result)
106+ return (uniqDyn window, result)
107107 where
108108 toStyleAttr m = "style" =: Map.foldWithKey (\k v s -> k <> ":" <> v <> ";" <> s) "" m
109109 mkViewport h = toStyleAttr $ "overflow" =: "auto" <> "position" =: "absolute" <>
@@ -144,6 +144,6 @@ virtualListBuffered buffer heightPx rowPx maxIndex i0 setI keyToIndex items0 ite
144144 then Nothing
145145 else Just (extendWin winOffset winLimit)) (current winBuffered) (updated win)
146146 winBuffered <- holdDyn (0, 0) $ leftmost [ winHitEdge
147− , attachDynWith (\(x, y) _ -> extendWin x y) win pb
147+ , attachPromptlyDynWith (\(x, y) _ -> extendWin x y) win pb
148148 ]
149149 return (updated winBuffered, m)