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