From 8f04710047fe2af04421e40d3f57738d0dbc473e Mon Sep 17 00:00:00 2001 From: Sagar-Kap <69609200+Sagar-Kap@users.noreply.github.com> Date: Fri, 7 Aug 2026 12:59:32 +0300 Subject: [PATCH 1/2] refactor: extract facade activation and iframe registry composables Share the facade-holds-a-live-iframe tracking (useFacadeActivation) and the per-key iframe bind-once/park/restore lifecycle (useFrameRegistry) across the three platform carousels. Add a happy-dom unit test covering both composables and the pure park/restore helpers; vue added as a devDependency so the composables' Vue imports resolve under vitest. --- package.json | 1 + src/module.ts | 8 ++ src/runtime/components/InstagramCarousel.vue | 40 ++----- src/runtime/components/TikTokCarousel.vue | 65 +++-------- src/runtime/components/YouTubeCarousel.vue | 57 ++++------ .../composables/useFacadeActivation.ts | 41 +++++++ src/runtime/composables/useFrameRegistry.ts | 75 +++++++++++++ test/embed-state.test.ts | 105 ++++++++++++++++++ 8 files changed, 277 insertions(+), 115 deletions(-) create mode 100644 src/runtime/composables/useFacadeActivation.ts create mode 100644 src/runtime/composables/useFrameRegistry.ts create mode 100644 test/embed-state.test.ts diff --git a/package.json b/package.json index a975eb3..47def93 100644 --- a/package.json +++ b/package.json @@ -78,6 +78,7 @@ "nuxt": "^4.4.5", "typescript": "~6.0.3", "vitest": "^4.1.5", + "vue": "^3.5.41", "vue-tsc": "^3.2.8" }, "publishConfig": { diff --git a/src/module.ts b/src/module.ts index 936344c..07e2c4f 100644 --- a/src/module.ts +++ b/src/module.ts @@ -76,6 +76,14 @@ export default defineNuxtModule({ name: 'useEmbedMetadata', from: resolver.resolve('./runtime/composables/useEmbedMetadata'), }, + { + name: 'useFacadeActivation', + from: resolver.resolve('./runtime/composables/useFacadeActivation'), + }, + { + name: 'useFrameRegistry', + from: resolver.resolve('./runtime/composables/useFrameRegistry'), + }, ]) }, }) diff --git a/src/runtime/components/InstagramCarousel.vue b/src/runtime/components/InstagramCarousel.vue index 94388b3..47d1e95 100644 --- a/src/runtime/components/InstagramCarousel.vue +++ b/src/runtime/components/InstagramCarousel.vue @@ -71,7 +71,7 @@ >