Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 9c3d9b1

Browse files
committed
Merge branch 'beta' into refactor/tests-proposal
2 parents 62f05ba + 3813b88 commit 9c3d9b1

File tree

3 files changed

+23
-12
lines changed

3 files changed

+23
-12
lines changed

‎src/core/index.ts

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,18 @@ function resultContainer<TValue>(): ResultContainer<TValue> {
4040
}
4141
}
4242

43-
function createRenderHook<TProps, TResult, TOptions extends {}, TRenderer extends Renderer<TProps>>(
43+
function createRenderHook<
44+
TProps,
45+
TResult,
46+
TOptions extends object,
47+
TRenderer extends Renderer<TProps>
48+
>(
4449
createRenderer: CreateRenderer<TProps, TResult, TOptions, TRenderer>
45-
) {
46-
const renderHook = (
47-
callback: (props: TProps)=>TResult,
48-
options: RenderHookOptions<TProps,TOptions> = {} as RenderHookOptions<TProps, TOptions>
49-
): RenderHook<TProps,TResult,TRenderer> => {
50+
): RenderHook<TProps,TResult,TOptions> {
51+
const renderHook: RenderHook<TProps,TResult,TOptions> = (
52+
callback,
53+
options = {} as RenderHookOptions<TProps, TOptions>
54+
) => {
5055
const { result, setValue, setError, addResolver } = resultContainer<TResult>()
5156
const renderProps = { callback, setValue, setError }
5257
let hookProps = options.initialProps
@@ -81,7 +86,6 @@ function createRenderHook<TProps, TResult, TOptions extends {}, TRenderer extend
8186
// This dummy usage works around that.
8287
renderHook.name // eslint-disable-line @typescript-eslint/no-unused-expressions
8388

84-
8589
return renderHook
8690
}
8791

‎src/types/index.ts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ export type AsyncUtils = {
3838
waitForValueToChange: (selector: () => unknown, options?: WaitOptions) => Promise<void>
3939
}
4040

41-
export type RenderHook<
41+
export type RenderHookResult<
4242
TProps,
4343
TValue,
4444
TRenderer extends Renderer<TProps> = Renderer<TProps>
@@ -47,10 +47,17 @@ export type RenderHook<
4747
Omit<TRenderer, keyof Renderer<TProps>> &
4848
AsyncUtils
4949

50-
export type RenderHookOptions<TProps, TOptions extends {}> = TOptions & {
50+
export type RenderHookOptions<TProps, TOptions extends object> = TOptions & {
5151
initialProps?: TProps
5252
}
5353

54+
export interface RenderHook<TProps, TResult, TOptions extends object> {
55+
(
56+
callback: (props: TProps) => TResult,
57+
options?: RenderHookOptions<TProps, TOptions>
58+
): RenderHookResult<TProps, TResult>
59+
}
60+
5461
export interface Act {
5562
(callback: () => void | undefined): void
5663
(callback: () => Promise<void | undefined>): Promise<undefined>

‎src/types/react.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
import { ComponentType } from 'react'
22

3-
import { RenderHook,RenderHookOptions, Act } from '.'
3+
import { RenderHookOptions,RenderHookResult, Act } from '.'
44

55
export type WrapperComponent<TProps> = ComponentType<TProps>
66

77
export type RendererOptions<TProps> = {
88
wrapper?: WrapperComponent<TProps>
99
}
1010

11-
export interface ReactHooksRenderer {
11+
export type ReactHooksRenderer= {
1212
renderHook: <TProps, TResult>(
1313
callback: (props: TProps) => TResult,
1414
options?: RenderHookOptions<TProps, RendererOptions<TProps>>
15-
) => RenderHook<TProps, TResult>
15+
) => RenderHookResult<TProps, TResult>
1616
act: Act
1717
cleanup: () => void
1818
addCleanup: (callback: () => Promise<void> | void) => () => void

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /