From adb9d405bb44a8c87f7d526bebb972f84eed68f3 Mon Sep 17 00:00:00 2001 From: Nicolas Bayet Date: Fri, 26 Sep 2025 18:08:15 +0200 Subject: [PATCH] up --- src/runtime/hooks.ts | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/runtime/hooks.ts b/src/runtime/hooks.ts index 2741b06a..25600e30 100644 --- a/src/runtime/hooks.ts +++ b/src/runtime/hooks.ts @@ -1,5 +1,6 @@ import type { Env } from "./app"; import { getCurrent } from "./component_node"; +import { popExecutionContext, pushExecutionContext } from "./executionContext"; import { onMounted, onPatched, onWillUnmount } from "./lifecycle_hooks"; import { inOwnerDocument } from "./utils"; @@ -86,11 +87,22 @@ export function useEffect( effect: Effect, computeDependencies: () => [...T] = () => [NaN] as never ) { + const context = getCurrent().component.__owl__.executionContext; let cleanup: (() => void) | void; let dependencies: T; + + const runEffect = () => { + pushExecutionContext(context); + try { + cleanup = effect(...dependencies); + } finally { + popExecutionContext(); + } + }; + onMounted(() => { dependencies = computeDependencies(); - cleanup = effect(...dependencies); + runEffect(); }); onPatched(() => { @@ -101,7 +113,7 @@ export function useEffect( if (cleanup) { cleanup(); } - cleanup = effect(...dependencies); + runEffect(); } });