recharts
Version:
React charts
48 lines (47 loc) • 1.84 kB
TypeScript
/**
* Callback type for the timeout function.
* Receives current time as an argument.
*/
export type CallbackType = (now: number) => void;
/**
* A function that, when called, cancels the timeout.
*
* @since 3.9
*/
export type CancelableTimeout = () => void;
/**
* TimeoutController is responsible for controlling the movement of time.
* Think of it as a clock.
*
* Recharts default implementation uses requestAnimationFrame which works great in a browser.
* You may choose to override this which is especially useful if you want to control animations.
*
* Why would you want to do this?
* - unit tests
* - animations based on something other than time: UI controls, page scroll, mouse movement ...
*
* @see {@link https://recharts.github.io/en-US/guide/animations/ Animation guide}
*
* @since 3.9
*/
export interface TimeoutController {
/**
* Sets a timeout that executes a callback after a specified delay.
* Allows setting multiple timeouts and provides a way to cancel them independently.
*
* Note that this one function has two different time systems!
* The input (delay - parameter of setTimeout)
* - is relative
* - it means "wait for this long"
* -
*
* The output (now - parameter of the callback) is absolute; it means "this is the time now"
*
* @param callback - The function to execute after the delay. Receives the current absolute time in milliseconds as an argument.
* @param delay (optional) - The duration of time in milliseconds to wait before executing the callback. Defaults to 0.
*/
setTimeout(callback: CallbackType, delay?: number): CancelableTimeout;
}
export declare class RequestAnimationFrameTimeoutController implements TimeoutController {
setTimeout(callback: CallbackType, delay?: number): CancelableTimeout;
}