diff --git a/packages/core/package.json b/packages/core/package.json index c4daa5a6..f5d4d4e6 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@dark-engine/core", - "version": "0.9.15", + "version": "0.10.0", "description": "Dark is lightweight (10 Kb gzipped) component-and-hook-based UI rendering engine for javascript apps without dependencies and written in TypeScript 💫", "author": "AlexPlex", "license": "MIT", diff --git a/packages/core/src/use-reactive-state/use-reactive-state.ts b/packages/core/src/use-reactive-state/use-reactive-state.ts index 8acbbfa4..95867b77 100644 --- a/packages/core/src/use-reactive-state/use-reactive-state.ts +++ b/packages/core/src/use-reactive-state/use-reactive-state.ts @@ -28,8 +28,8 @@ function reactive(value: T, scope: Scope, update: () => void): target[prop] = reactive(value, scope, update); - scope.timerId && clearTimeout(scope.timerId); - scope.timerId = setTimeout(() => { + scope.timerId && window.clearTimeout(scope.timerId); + scope.timerId = window.setTimeout(() => { update(); }); diff --git a/packages/core/types/fiber/fiber.d.ts b/packages/core/types/fiber/fiber.d.ts index 30cd8f92..9125baee 100644 --- a/packages/core/types/fiber/fiber.d.ts +++ b/packages/core/types/fiber/fiber.d.ts @@ -23,7 +23,7 @@ declare class Fiber { marker: string; isUsed: boolean; idx: number; - batched: Array<() => void>; + batched: () => void | null; catchException: (error: Error) => void; constructor(options: Partial>); markPortalHost(): void; diff --git a/packages/core/types/index.d.ts b/packages/core/types/index.d.ts index e9e9f6c1..e0f92adb 100644 --- a/packages/core/types/index.d.ts +++ b/packages/core/types/index.d.ts @@ -22,8 +22,9 @@ export { useLayoutEffect } from './use-layout-effect'; export * from './use-memo'; export * from './use-reducer'; export * from './use-ref'; -export * from './use-state'; export * from './use-update'; +export * from './use-state'; +export * from './use-reactive-state'; export * from './view'; export * from './constants'; export { walkFiber } from './walk'; diff --git a/packages/core/types/use-event/use-event.d.ts b/packages/core/types/use-event/use-event.d.ts index 0e947a48..31f89dfa 100644 --- a/packages/core/types/use-event/use-event.d.ts +++ b/packages/core/types/use-event/use-event.d.ts @@ -1,2 +1,2 @@ -declare function useEvent any>(fn: T): T; +declare function useEvent) => any>(fn: T): T; export { useEvent }; diff --git a/packages/core/types/use-reactive-state/index.d.ts b/packages/core/types/use-reactive-state/index.d.ts new file mode 100644 index 00000000..f09e4504 --- /dev/null +++ b/packages/core/types/use-reactive-state/index.d.ts @@ -0,0 +1 @@ +export * from './use-reactive-state'; diff --git a/packages/core/types/use-reactive-state/use-reactive-state.d.ts b/packages/core/types/use-reactive-state/use-reactive-state.d.ts new file mode 100644 index 00000000..b80491a2 --- /dev/null +++ b/packages/core/types/use-reactive-state/use-reactive-state.d.ts @@ -0,0 +1,2 @@ +declare function useReactiveState(value: T): T; +export { useReactiveState }; diff --git a/packages/core/types/use-state/use-state.d.ts b/packages/core/types/use-state/use-state.d.ts index 78d573bb..1679d5f8 100644 --- a/packages/core/types/use-state/use-state.d.ts +++ b/packages/core/types/use-state/use-state.d.ts @@ -1,7 +1,7 @@ import { type ScheduleCallbackOptions } from '../platform'; declare type Value = T | ((prevValue: T) => T); declare function useState( - initialValue: T, + initialValue: T | (() => T), options?: ScheduleCallbackOptions, ): [T, (value: Value) => void]; export { useState }; diff --git a/packages/platform-browser/package.json b/packages/platform-browser/package.json index 0e7c1a1e..d9256e2d 100644 --- a/packages/platform-browser/package.json +++ b/packages/platform-browser/package.json @@ -1,6 +1,6 @@ { "name": "@dark-engine/platform-browser", - "version": "0.9.15", + "version": "0.10.0", "description": "Dark is lightweight (10 Kb gzipped) component-and-hook-based UI rendering engine for javascript apps without dependencies and written in TypeScript 💫", "author": "AlexPlex", "license": "MIT",