Skip to content
This repository was archived by the owner on Jul 6, 2025. It is now read-only.

Commit 5de0367

Browse files
author
X
authored
Add jsDoc for withDeno
1 parent 2447c57 commit 5de0367

File tree

1 file changed

+18
-6
lines changed

1 file changed

+18
-6
lines changed

hooks.ts

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -53,14 +53,26 @@ export function useDeno<T = any>(callback: () => (T | Promise<T>), browser?: boo
5353
return data
5454
}
5555

56+
/**
57+
* `withDeno` allows you to use `useDeno` hook with class component.
58+
*
59+
* ```javascript
60+
* class MyComponent extends React.Component {
61+
* render() {
62+
* return <p>{this.props.version.deno}</p>
63+
* }
64+
* }
65+
* export default withDeno(() => Deno.version)(MyComponent)
66+
* ```
67+
*/
5668
export function withDeno<T>(callback: () => (T | Promise<T>), browser?: boolean, deps?: ReadonlyArray<any>) {
57-
return function <P extends T, >(Component: React.ComponentType<P>): React.ComponentType<Exclude<P, keyof T>> {
58-
return function (props: Exclude<P, keyof T>) {
59-
const denoProps = useDeno(callback, browser, deps);
69+
return function <P extends T>(Component: React.ComponentType<P>): React.ComponentType<Exclude<P, keyof T>> {
70+
return function WithDeno(props: Exclude<P, keyof T>) {
71+
const denoProps = useDeno(callback, browser, deps)
6072
if (typeof denoProps === 'object') {
61-
return React.createElement(Component, { ...props, ...denoProps });
73+
return React.createElement(Component, { ...props, ...denoProps })
6274
}
63-
return React.createElement(Component);
75+
return React.createElement(Component, props)
6476
}
65-
};
77+
}
6678
}

0 commit comments

Comments
 (0)