Jelajahi Sumber

refactor(runtime-vapor): extract transition hooks registry into separate file (#14575)

edison 1 bulan lalu
induk
melakukan
8c7e91d1c6

+ 5 - 38
packages/runtime-vapor/src/block.ts

@@ -325,41 +325,8 @@ export function isFragmentBlock(block: Block): boolean {
 
 export { setScopeId, setComponentScopeId } from './scopeId'
 
-// Transition hooks registry for tree-shaking
-// These are registered by Transition component when it's used
-type ApplyTransitionHooksFn = (
-  block: Block,
-  hooks: VaporTransitionHooks,
-) => VaporTransitionHooks
-type ApplyTransitionLeaveHooksFn = (
-  block: Block,
-  enterHooks: VaporTransitionHooks,
-  afterLeaveCb: () => void,
-) => void
-
-let _applyTransitionHooks: ApplyTransitionHooksFn | undefined
-let _applyTransitionLeaveHooks: ApplyTransitionLeaveHooksFn | undefined
-
-export function registerTransitionHooks(
-  applyHooks: ApplyTransitionHooksFn,
-  applyLeaveHooks: ApplyTransitionLeaveHooksFn,
-): void {
-  _applyTransitionHooks = applyHooks
-  _applyTransitionLeaveHooks = applyLeaveHooks
-}
-
-export function applyTransitionHooks(
-  block: Block,
-  hooks: VaporTransitionHooks,
-): VaporTransitionHooks {
-  return _applyTransitionHooks ? _applyTransitionHooks(block, hooks) : hooks
-}
-
-export function applyTransitionLeaveHooks(
-  block: Block,
-  enterHooks: VaporTransitionHooks,
-  afterLeaveCb: () => void,
-): void {
-  _applyTransitionLeaveHooks &&
-    _applyTransitionLeaveHooks(block, enterHooks, afterLeaveCb)
-}
+export {
+  registerTransitionHooks,
+  applyTransitionHooks,
+  applyTransitionLeaveHooks,
+} from './transition'

+ 2 - 6
packages/runtime-vapor/src/components/Transition.ts

@@ -19,12 +19,8 @@ import {
   useTransitionState,
   warn,
 } from '@vue/runtime-dom'
-import {
-  type Block,
-  type TransitionBlock,
-  type VaporTransitionHooks,
-  registerTransitionHooks,
-} from '../block'
+import type { Block, TransitionBlock, VaporTransitionHooks } from '../block'
+import { registerTransitionHooks } from '../transition'
 import {
   type FunctionalVaporComponent,
   type VaporComponentInstance,

+ 41 - 0
packages/runtime-vapor/src/transition.ts

@@ -0,0 +1,41 @@
+import type { Block } from './block'
+import type { VaporTransitionHooks } from './block'
+
+// Transition hooks registry for tree-shaking
+// These are registered by Transition component when it's used
+type ApplyTransitionHooksFn = (
+  block: Block,
+  hooks: VaporTransitionHooks,
+) => VaporTransitionHooks
+type ApplyTransitionLeaveHooksFn = (
+  block: Block,
+  enterHooks: VaporTransitionHooks,
+  afterLeaveCb: () => void,
+) => void
+
+let _applyTransitionHooks: ApplyTransitionHooksFn | undefined
+let _applyTransitionLeaveHooks: ApplyTransitionLeaveHooksFn | undefined
+
+export function registerTransitionHooks(
+  applyHooks: ApplyTransitionHooksFn,
+  applyLeaveHooks: ApplyTransitionLeaveHooksFn,
+): void {
+  _applyTransitionHooks = applyHooks
+  _applyTransitionLeaveHooks = applyLeaveHooks
+}
+
+export function applyTransitionHooks(
+  block: Block,
+  hooks: VaporTransitionHooks,
+): VaporTransitionHooks {
+  return _applyTransitionHooks ? _applyTransitionHooks(block, hooks) : hooks
+}
+
+export function applyTransitionLeaveHooks(
+  block: Block,
+  enterHooks: VaporTransitionHooks,
+  afterLeaveCb: () => void,
+): void {
+  _applyTransitionLeaveHooks &&
+    _applyTransitionLeaveHooks(block, enterHooks, afterLeaveCb)
+}