-
Notifications
You must be signed in to change notification settings - Fork 232
/
Copy pathreact.ts
44 lines (37 loc) · 1.1 KB
/
react.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import { ComponentType, ReactNode } from 'react'
import {
RenderHookOptions as BaseRenderHookOptions,
RenderHookResult,
ServerRenderHookResult,
Act,
CleanupCallback
} from '.'
export type WrapperComponent<TProps> = ComponentType<
TProps & {
children: ReactNode
}
>
export type RendererOptions<TProps> = {
wrapper?: WrapperComponent<TProps>
}
export type RenderHookOptions<TProps> = BaseRenderHookOptions<TProps> & {
wrapper?: WrapperComponent<TProps>
}
export type ReactHooksRenderer = {
renderHook: <TProps, TResult>(
callback: (props: TProps) => TResult,
options?: RenderHookOptions<TProps>
) => RenderHookResult<TProps, TResult>
act: Act
cleanup: () => Promise<void>
addCleanup: (callback: CleanupCallback) => () => void
removeCleanup: (callback: CleanupCallback) => void
suppressErrorOutput: () => () => void
}
export type ReactHooksServerRenderer = Omit<ReactHooksRenderer, 'renderHook'> & {
renderHook: <TProps, TResult>(
callback: (props: TProps) => TResult,
options?: RenderHookOptions<TProps>
) => ServerRenderHookResult<TProps, TResult>
}
export * from '.'