File tree Expand file tree Collapse file tree 2 files changed +17
-1
lines changed Expand file tree Collapse file tree 2 files changed +17
-1
lines changed Original file line number Diff line number Diff line change @@ -19,3 +19,7 @@ export function unmount(node) {
1919export function createPortal ( jsx ) {
2020 return ( node ) => ReactDOM . createPortal ( jsx , node ) ;
2121}
22+
23+ export function flushSync ( callback ) {
24+ return ( ) => ReactDOM . flushSync ( callback ) ;
25+ }
Original file line number Diff line number Diff line change @@ -13,6 +13,7 @@ module React.Basic.DOM
1313 , unmount
1414 , createPortal
1515 , text
16+ , flushSync
1617 , module Generated
1718 ) where
1819
@@ -100,4 +101,15 @@ foreign import createPortal :: JSX -> Element -> JSX
100101
101102-- | Create a text node.
102103text :: String -> JSX
103- text = unsafeCoerce
104+ text = unsafeCoerce
105+
106+ -- | `flushSync` lets you force React to flush any updates inside the provided
107+ -- | callback synchronously. This ensures that the DOM is updated immediately.
108+ -- |
109+ -- | ```purs
110+ -- | let
111+ -- | handleNewChatMessage msg = do
112+ -- | flushSync (setMessages (_ <> [msg]))
113+ -- | scrollToLastMessage
114+ -- | ```
115+ foreign import flushSync :: forall a . Effect a -> Effect a
You can’t perform that action at this time.
0 commit comments