diff options
Diffstat (limited to 'plugins/CoreHome/vue/src/useExternalPluginComponent.ts')
-rw-r--r-- | plugins/CoreHome/vue/src/useExternalPluginComponent.ts | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/plugins/CoreHome/vue/src/useExternalPluginComponent.ts b/plugins/CoreHome/vue/src/useExternalPluginComponent.ts new file mode 100644 index 0000000000..69b80b62be --- /dev/null +++ b/plugins/CoreHome/vue/src/useExternalPluginComponent.ts @@ -0,0 +1,23 @@ +/*! + * Matomo - free/libre analytics platform + * + * @link https://matomo.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + */ + +import { defineAsyncComponent } from 'vue'; + +export default function useExternalPluginComponent( + plugin: string, + component: string, +): typeof defineAsyncComponent { + return defineAsyncComponent(() => (new Promise((resolve) => { + window.$(document).ready(() => { + if (window[plugin]) { + resolve(window[plugin][component]); + } else { + resolve(null); // plugin not loaded + } + }); + }))); +} |