Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/CoreHome/vue/src/useExternalPluginComponent.ts')
-rw-r--r--plugins/CoreHome/vue/src/useExternalPluginComponent.ts23
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
+ }
+ });
+ })));
+}