From c1f24fc80e5be6a7dc6266a1dda6168e61139b51 Mon Sep 17 00:00:00 2001 From: Damian Pieczynski Date: Sun, 7 Dec 2025 17:50:17 +0100 Subject: [PATCH] feat: add skipInitialOnChange to memo utility --- packages/virtual-core/src/utils.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/virtual-core/src/utils.ts b/packages/virtual-core/src/utils.ts index c11b3d38..4d824b8d 100644 --- a/packages/virtual-core/src/utils.ts +++ b/packages/virtual-core/src/utils.ts @@ -10,10 +10,12 @@ export function memo, TResult>( debug?: () => boolean onChange?: (result: TResult) => void initialDeps?: TDeps + skipInitialOnChange?: boolean }, ) { let deps = opts.initialDeps ?? [] let result: TResult | undefined + let isInitial = true function memoizedFunction(): TResult { let depTime: number @@ -62,7 +64,11 @@ export function memo, TResult>( ) } - opts?.onChange?.(result) + if (opts?.onChange && !(isInitial && opts.skipInitialOnChange)) { + opts.onChange(result) + } + + isInitial = false return result }