PluginProbe
Extendify / 3.2.1
Extendify v3.2.1
3.2.1 3.2.0 3.1.6 3.1.5 3.1.4 3.1.3 3.1.2 3.1.1 3.1.0 3.0.6 3.0.5 3.0.4 trunk 0.1.0 0.10.0 0.10.1 0.10.2 0.11.0 0.11.1 0.2.0 0.3.0 0.3.1 0.4.0 0.5.0 0.6.0 All 127 releases
extendify / src / Assist / hooks / useTasks.js

useTasks.js in Extendify 3.2.1, at src/Assist/hooks/useTasks.js

98 lines 3.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 import {
2 domainSearchUrl,
3 showDomainTask,
4 showSecondaryDomainTask,
5 } from '@assist/lib/domains';
6 import addPage from '@assist/tasks/add-page';
7 import openAIImageEditor from '@assist/tasks/ai-image-editor';
8 import openAITextEditor from '@assist/tasks/ai-text-editor';
9 import demoCard from '@assist/tasks/demo-card';
10 import domainRecommendation from '@assist/tasks/domain-recommendation';
11 import editHomepage from '@assist/tasks/edit-homepage';
12 import helpCenter from '@assist/tasks/help-center';
13 import helpCenterAi from '@assist/tasks/help-center-ai';
14 import ionosConnectDomain from '@assist/tasks/ionos-connect-domain';
15 import openDesignLibrary from '@assist/tasks/open-design-library';
16 import secondaryDomainRecommendation from '@assist/tasks/secondary-domain-recommendation';
17 import setupAioseo from '@assist/tasks/setup-aioseo';
18 import setupGivewp from '@assist/tasks/setup-givewp';
19 import setupHubspot from '@assist/tasks/setup-hubspot';
20 import setupMonsterInsights from '@assist/tasks/setup-monsterinsights';
21 import setupSimplyAppointments from '@assist/tasks/setup-simply-appointments';
22 import setupSimplyBook from '@assist/tasks/setup-simplybook';
23 import setupTec from '@assist/tasks/setup-tec';
24 import setupWoocommerceGermanizedStore from '@assist/tasks/setup-woocommerce-germanized-store';
25 import setupWoocommerceStore from '@assist/tasks/setup-woocommerce-store';
26 import setupWpforms from '@assist/tasks/setup-wpforms';
27 import setupYourwebshop from '@assist/tasks/setup-yourwebshop';
28 import siteBuilderLauncher from '@assist/tasks/site-builder-launcher';
29 import updateSiteDescription from '@assist/tasks/update-site-description';
30 import uploadLogo from '@assist/tasks/upload-logo';
31 import uploadSiteIcon from '@assist/tasks/upload-site-icon';
32 import { safeParseJson } from '@shared/lib/parsing';
33
34 const activePlugins = window.extSharedData?.activePlugins || [];
35 const sitePlugins =
36 safeParseJson(window.extSharedData.launchDataLegacy)?.state?.sitePlugins ||
37 [];
38
39 export const useTasks = () => {
40 const tasks = Object.values({
41 'site-builder-launcher': { ...siteBuilderLauncher },
42 'ai-text-editor': { ...openAITextEditor },
43 'help-center-ai': { ...helpCenterAi },
44 'help-center': { ...helpCenter },
45 'ai-image-editor': { ...openAIImageEditor },
46 'design-library': { ...openDesignLibrary },
47 'domain-recommendation': { ...domainRecommendation },
48 'secondary-domain-recommendation': { ...secondaryDomainRecommendation },
49 'ionos-connect-domain': { ...ionosConnectDomain },
50 'edit-homepage': { ...editHomepage },
51 'upload-logo': { ...uploadLogo },
52 'upload-site-icon': { ...uploadSiteIcon },
53 'update-site-description': { ...updateSiteDescription },
54 'add-page': { ...addPage },
55 'demo-card': { ...demoCard },
56 'setup-woocommerce-store': { ...setupWoocommerceStore },
57 'setup-woocommerce-germanized-store': {
58 ...setupWoocommerceGermanizedStore,
59 },
60 'setup-hubspot': { ...setupHubspot },
61 'setup-givewp': { ...setupGivewp },
62 'setup-tec': { ...setupTec },
63 'setup-simply-appointments': { ...setupSimplyAppointments },
64 'setup-simplybook': { ...setupSimplyBook },
65 'setup-aioses': { ...setupAioseo },
66 'setup-wpforms': { ...setupWpforms },
67 'setup-yourwebshop': { ...setupYourwebshop },
68 'setup-monsterinsights': { ...setupMonsterInsights },
69 });
70
71 const activePluginSlugs = activePlugins?.map((plugin) => {
72 try {
73 return plugin.split('/')[0];
74 } catch (_e) {
75 return plugin;
76 }
77 });
78 const sitePluginSlugs = sitePlugins?.map((p) => p.slug) || [];
79 const pluginsToCheck = [
80 ...new Set([...activePluginSlugs, ...sitePluginSlugs]),
81 ];
82
83 return {
84 tasks: tasks.filter((task) => {
85 const {
86 dependencies: { plugins },
87 } = task;
88
89 return task.show({
90 plugins,
91 activePlugins: pluginsToCheck,
92 showDomainTask: showDomainTask && domainSearchUrl,
93 showSecondaryDomainTask: showSecondaryDomainTask && domainSearchUrl,
94 });
95 }),
96 };
97 };
98