diff --git a/src/React.res b/src/React.res index f1f6831..0676012 100644 --- a/src/React.res +++ b/src/React.res @@ -411,13 +411,23 @@ external displayName: component<'props> => option = "displayName" // Actions -type transitionFunction = unit => promise - +type transitionFunction = unit => unit type transitionStartFunction = transitionFunction => unit +type transitionFunctionAsync = unit => promise +type transitionStartFunctionAsync = transitionFunctionAsync => unit + +/** `startTransition` lets you render a part of the UI in the background. */ +@module("react") +external startTransition: transitionStartFunction = "startTransition" +@module("react") +external startTransitionAsync: transitionStartFunctionAsync = "startTransition" + /** `useTransition` is a React Hook that lets you render a part of the UI in the background. */ @module("react") external useTransition: unit => (bool, transitionStartFunction) = "useTransition" +@module("react") +external useTransitionAsync: unit => (bool, transitionStartFunctionAsync) = "useTransition" type action<'state, 'payload> = ('state, 'payload) => promise<'state>