Skip to content

Commit 6157fcb

Browse files
authored
export useEffect & useState (#1089)
* export useEffect & useState * fix tests
1 parent 8d32240 commit 6157fcb

File tree

4 files changed

+30
-3
lines changed

4 files changed

+30
-3
lines changed

packages/@dcl/playground-assets/etc/playground-assets.api.md

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3659,6 +3659,16 @@ export interface ReactBasedUiSystem {
36593659

36603660
// @public (undocumented)
36613661
export namespace ReactEcs {
3662+
// (undocumented)
3663+
export type DependencyList = ReadonlyArray<any>;
3664+
const // (undocumented)
3665+
createElement: any;
3666+
// (undocumented)
3667+
export type Dispatch<T> = (action: SetStateAction<T>) => void;
3668+
// (undocumented)
3669+
export type EffectCallback = () => void | (() => void | undefined);
3670+
// (undocumented)
3671+
export type EffectHook = (effect: EffectCallback, deps?: DependencyList) => void;
36623672
// (undocumented)
36633673
export namespace JSX {
36643674
export interface Component {
@@ -3671,8 +3681,15 @@ export namespace ReactEcs {
36713681
// (undocumented)
36723682
export type ReactNode = Element | ReactElement | string | number | boolean | null | undefined | ReactNode[];
36733683
}
3684+
// (undocumented)
3685+
export type SetStateAction<T> = T | ((prevState: T) => T);
3686+
// (undocumented)
3687+
export type StateHook = <T>(initialState: T | (() => T)) => [T, Dispatch<T>];
36743688
const // (undocumented)
3675-
createElement: any;
3689+
useEffect: EffectHook;
3690+
const // (undocumented)
3691+
useState: StateHook;
3692+
{};
36763693
}
36773694

36783695
// Warning: (tsdoc-at-sign-in-word) The "@" character looks like part of a TSDoc tag; use a backslash to escape it

packages/@dcl/react-ecs/src/react-ecs.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,4 +74,14 @@ export namespace ReactEcs {
7474
export interface Component {}
7575
}
7676
export const createElement = (React as any).createElement
77+
type SetStateAction<T> = T | ((prevState: T) => T)
78+
type Dispatch<T> = (action: SetStateAction<T>) => void
79+
type StateHook = <T>(initialState: T | (() => T)) => [T, Dispatch<T>]
80+
81+
// Type for useEffect
82+
type DependencyList = ReadonlyArray<any>
83+
type EffectCallback = () => void | (() => void | undefined)
84+
type EffectHook = (effect: EffectCallback, deps?: DependencyList) => void
85+
export const useEffect: EffectHook = (React as any).useEffect
86+
export const useState: StateHook = (React as any).useState
7787
}

test/snapshots/package-lock.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

test/snapshots/production-bundles/ui.ts.crdt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,4 +65,4 @@ CALL onUpdate(0.1)
6565
OPCODES ~= 65k
6666
MALLOC_COUNT = 0
6767
ALIVE_OBJS_DELTA ~= 0.00k
68-
MEMORY_USAGE_COUNT ~= 1708.06k bytes
68+
MEMORY_USAGE_COUNT ~= 1708.08k bytes

0 commit comments

Comments
 (0)