diff --git a/CHANGELOG.md b/CHANGELOG.md index 2c6e682f4..097b267c5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,12 @@ Changelog _Note: Gaps between patch versions are faulty, broken or test releases._ +## v4.0.0-beta.167 (2024-12-12) + +#### :bug: Bug Fix + +* Call `beforeUnmount` hook of directive before `unmounted` hook `core/component/engines/directive` + ## v4.0.0-beta.166 (2024-12-09) #### :house: Internal diff --git a/src/core/component/engines/CHANGELOG.md b/src/core/component/engines/CHANGELOG.md index e74d19410..e97633643 100644 --- a/src/core/component/engines/CHANGELOG.md +++ b/src/core/component/engines/CHANGELOG.md @@ -9,6 +9,12 @@ Changelog > - :house: [Internal] > - :nail_care: [Polish] +## v4.0.0-beta.167 (2024-12-12) + +#### :bug: Bug Fix + +* Call `beforeUnmount` hook of directive before `unmounted` hook + ## v4.0.0-beta.151 (2024-11-06) #### :rocket: New Feature diff --git a/src/core/component/engines/directive.ts b/src/core/component/engines/directive.ts index 28e760c65..1f10151fa 100644 --- a/src/core/component/engines/directive.ts +++ b/src/core/component/engines/directive.ts @@ -50,9 +50,10 @@ ComponentEngine.directive = function directive(name: string, directive?: Directi const originalCreated = directive.created, + originalBeforeUnmount = directive.beforeUnmount, originalUnmounted = directive.unmounted; - if (originalUnmounted == null) { + if (originalUnmounted == null && originalBeforeUnmount == null) { return originalDirective.call(ctx, name, directive); } @@ -72,7 +73,8 @@ ComponentEngine.directive = function directive(name: string, directive?: Directi if (vnode.virtualContext != null) { vnode.virtualContext.unsafe.$once('[[BEFORE_DESTROY]]', (opts: Required) => { if (opts.shouldUnmountVNodes) { - originalUnmounted.apply(this, args); + originalBeforeUnmount?.apply(this, args); + originalUnmounted?.apply(this, args); } }); }