PluginProbe
The Innovative Form Builder – IvyForms / 0.6
The Innovative Form Builder – IvyForms v0.6
1.5.1 1.5 1.4.1 1.4 trunk 0.1.2 0.2 0.2.1 0.3 0.3.1 0.4 0.5 0.6 0.6.1 0.6.1-backup 0.6.1.1 0.7 0.8 0.8.1 0.8.2 0.9 0.9.1 1.0 1.1 1.1.1 All 27 releases
ivyforms / frontend / src / views / admin / App.vue

App.vue in The Innovative Form Builder – IvyForms 0.6, at frontend/src/views/admin/App.vue

45 lines 1.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <template>
2 <div>
3 <component
4 :is="BannerComponent"
5 v-for="(BannerComponent, index) in bannerComponents"
6 :key="index"
7 />
8 <RouterView />
9 <IvyChangelogModal />
10 <ProUpgradeDialog />
11 </div>
12 </template>
13
14 <script setup lang="ts">
15 import { ref, onMounted } from 'vue'
16 import type { Component } from 'vue'
17 import IvyChangelogModal from '@/views/_components/changelog/IvyChangelogModal.vue'
18 import ProUpgradeDialog from '@/views/_components/dialog/ProUpgradeDialog.vue'
19
20 // Allow Pro to inject banner components via hook
21 const bannerComponents = ref<Component[]>([])
22
23 onMounted(() => {
24 // Apply filter initially
25 if (window.IvyForms?.hooks?.applyFilters) {
26 bannerComponents.value = window.IvyForms.hooks.applyFilters(
27 'ivyforms/app/banner_components',
28 [],
29 )
30 }
31
32 // Listen for banner refresh events (e.g., when Pro plugin registers banners after mount)
33 const refreshBanners = () => {
34 if (window.IvyForms?.hooks?.applyFilters) {
35 bannerComponents.value = window.IvyForms.hooks.applyFilters(
36 'ivyforms/app/banner_components',
37 [],
38 )
39 }
40 }
41
42 window.addEventListener('ivyforms:refresh_banners', refreshBanners)
43 })
44 </script>
45