|
|
@@ -1,6 +1,5 @@
|
|
|
-import type { DirectiveModifiers } from '@vue/runtime-dom'
|
|
|
+import { type DirectiveModifiers, onScopeDispose } from '@vue/runtime-dom'
|
|
|
import type { VaporComponentInstance } from '../component'
|
|
|
-import { renderEffect } from '../renderEffect'
|
|
|
|
|
|
// !! vapor directive is different from vdom directives
|
|
|
export type VaporDirective = (
|
|
|
@@ -13,11 +12,11 @@ export type VaporDirective = (
|
|
|
type VaporDirectiveArguments = Array<
|
|
|
| [VaporDirective | undefined]
|
|
|
| [VaporDirective | undefined, () => any]
|
|
|
- | [VaporDirective | undefined, () => any, argument: string]
|
|
|
+ | [VaporDirective | undefined, (() => any) | undefined, argument: string]
|
|
|
| [
|
|
|
VaporDirective | undefined,
|
|
|
- value: () => any,
|
|
|
- argument: string,
|
|
|
+ value: (() => any) | undefined,
|
|
|
+ argument: string | undefined,
|
|
|
modifiers: DirectiveModifiers,
|
|
|
]
|
|
|
>
|
|
|
@@ -30,7 +29,7 @@ export function withVaporDirectives(
|
|
|
for (const [dir, value, argument, modifiers] of dirs) {
|
|
|
if (dir) {
|
|
|
const ret = dir(node, value, argument, modifiers)
|
|
|
- if (ret) renderEffect(ret)
|
|
|
+ if (ret) onScopeDispose(ret)
|
|
|
}
|
|
|
}
|
|
|
}
|