From 7d6a38c1393531df8593f6321651f5bd97bf6b62 Mon Sep 17 00:00:00 2001 From: Rishad Alam <101513331+RishadAlam@users.noreply.github.com> Date: Tue, 21 Apr 2026 10:33:44 +0600 Subject: [PATCH 01/10] feat: wordpress integration init --- backend/Actions/WordPress/RecordApiHelper.php | 589 ++++++++++++++++++ backend/Actions/WordPress/Routes.php | 18 + .../Actions/WordPress/WordPressController.php | 156 +++++ backend/Core/Util/AllTriggersName.php | 1 + .../components/AllIntegrations/EditInteg.jsx | 3 + .../components/AllIntegrations/IntegInfo.jsx | 3 + .../components/AllIntegrations/NewInteg.jsx | 10 + .../WordPress/EditWordPress.jsx | 76 +++ .../AllIntegrations/WordPress/WordPress.jsx | 95 +++ .../WordPress/WordPressAuthorization.jsx | 77 +++ .../WordPress/WordPressCommonFunc.js | 308 +++++++++ .../WordPress/WordPressFieldMap.jsx | 104 ++++ .../WordPress/WordPressIntegLayout.jsx | 98 +++ .../AllIntegrations/WordPress/staticData.js | 466 ++++++++++++++ .../src/components/Flow/New/SelectAction.jsx | 1 + 15 files changed, 2005 insertions(+) create mode 100644 backend/Actions/WordPress/RecordApiHelper.php create mode 100644 backend/Actions/WordPress/Routes.php create mode 100644 backend/Actions/WordPress/WordPressController.php create mode 100644 frontend/src/components/AllIntegrations/WordPress/EditWordPress.jsx create mode 100644 frontend/src/components/AllIntegrations/WordPress/WordPress.jsx create mode 100644 frontend/src/components/AllIntegrations/WordPress/WordPressAuthorization.jsx create mode 100644 frontend/src/components/AllIntegrations/WordPress/WordPressCommonFunc.js create mode 100644 frontend/src/components/AllIntegrations/WordPress/WordPressFieldMap.jsx create mode 100644 frontend/src/components/AllIntegrations/WordPress/WordPressIntegLayout.jsx create mode 100644 frontend/src/components/AllIntegrations/WordPress/staticData.js diff --git a/backend/Actions/WordPress/RecordApiHelper.php b/backend/Actions/WordPress/RecordApiHelper.php new file mode 100644 index 000000000..7533d9c25 --- /dev/null +++ b/backend/Actions/WordPress/RecordApiHelper.php @@ -0,0 +1,589 @@ +_integrationDetails = $integrationDetails; + $this->_integrationID = $integId; + } + + public function execute($fieldValues, $fieldMap, $integrationDetails) + { + $fieldData = $this->generateReqDataFromFieldMap($fieldMap, $fieldValues); + $mainAction = isset($this->_integrationDetails->mainAction) ? $this->_integrationDetails->mainAction : ''; + + $defaultResponse = [ + 'success' => false, + 'message' => wp_sprintf( + // translators: %s: Plugin name + __('%s plugin is not installed or activated', 'bit-integrations'), + 'Bit Integrations Pro' + ), + ]; + + switch ($mainAction) { + // === User Management === + case 'createNewUser': + $response = Hooks::apply(Config::withPrefix('wordpress_createNewUser'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'updateUser': + $response = Hooks::apply(Config::withPrefix('wordpress_updateUser'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'deleteExitingUser': + $response = Hooks::apply(Config::withPrefix('wordpress_deleteExitingUser'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + // === User Retrieval === + case 'getAllUsers': + $response = Hooks::apply(Config::withPrefix('wordpress_getAllUsers'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'getAllUsersByRole': + $response = Hooks::apply(Config::withPrefix('wordpress_getAllUsersByRole'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'getUserById': + $response = Hooks::apply(Config::withPrefix('wordpress_getUserById'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'getUserByEmail': + $response = Hooks::apply(Config::withPrefix('wordpress_getUserByEmail'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'getUserByField': + $response = Hooks::apply(Config::withPrefix('wordpress_getUserByField'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + // === User Metadata === + case 'getUserMetadata': + $response = Hooks::apply(Config::withPrefix('wordpress_getUserMetadata'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'getUserMetadataByMetaKey': + $response = Hooks::apply(Config::withPrefix('wordpress_getUserMetadataByMetaKey'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'updateUserMetadata': + $response = Hooks::apply(Config::withPrefix('wordpress_updateUserMetadata'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + // === Role Management === + case 'createRole': + $response = Hooks::apply(Config::withPrefix('wordpress_createRole'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'deleteRole': + $response = Hooks::apply(Config::withPrefix('wordpress_deleteRole'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'getAllRoles': + $response = Hooks::apply(Config::withPrefix('wordpress_getAllRoles'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'addUserRoles': + $response = Hooks::apply(Config::withPrefix('wordpress_addUserRoles'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'removeUserRole': + $response = Hooks::apply(Config::withPrefix('wordpress_removeUserRole'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'updateUserRole': + $response = Hooks::apply(Config::withPrefix('wordpress_updateUserRole'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + // === Capabilities === + case 'getAllCapabilities': + $response = Hooks::apply(Config::withPrefix('wordpress_getAllCapabilities'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'getRoleCapabilities': + $response = Hooks::apply(Config::withPrefix('wordpress_getRoleCapabilities'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'addRoleCapabilities': + $response = Hooks::apply(Config::withPrefix('wordpress_addRoleCapabilities'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'removeRoleCapabilities': + $response = Hooks::apply(Config::withPrefix('wordpress_removeRoleCapabilities'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'getUserCapabilities': + $response = Hooks::apply(Config::withPrefix('wordpress_getUserCapabilities'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'addUserCapabilities': + $response = Hooks::apply(Config::withPrefix('wordpress_addUserCapabilities'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'removeUserCapabilities': + $response = Hooks::apply(Config::withPrefix('wordpress_removeUserCapabilities'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + // === Post Management === + case 'getAllPosts': + $response = Hooks::apply(Config::withPrefix('wordpress_getAllPosts'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'getPostById': + $response = Hooks::apply(Config::withPrefix('wordpress_getPostById'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'getPostsByPostType': + $response = Hooks::apply(Config::withPrefix('wordpress_getPostsByPostType'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'getPostsByMetadata': + $response = Hooks::apply(Config::withPrefix('wordpress_getPostsByMetadata'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'getPostMetadata': + $response = Hooks::apply(Config::withPrefix('wordpress_getPostMetadata'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'getPostMetadataByMetaKey': + $response = Hooks::apply(Config::withPrefix('wordpress_getPostMetadataByMetaKey'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'getPostPermalink': + $response = Hooks::apply(Config::withPrefix('wordpress_getPostPermalink'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'getPostContent': + $response = Hooks::apply(Config::withPrefix('wordpress_getPostContent'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'getPostExcerpt': + $response = Hooks::apply(Config::withPrefix('wordpress_getPostExcerpt'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'getPostStatus': + $response = Hooks::apply(Config::withPrefix('wordpress_getPostStatus'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'createNewPost': + $response = Hooks::apply(Config::withPrefix('wordpress_createNewPost'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'updateExistingPost': + $response = Hooks::apply(Config::withPrefix('wordpress_updateExistingPost'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'updatePostStatus': + $response = Hooks::apply(Config::withPrefix('wordpress_updatePostStatus'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'deleteExistingPost': + $response = Hooks::apply(Config::withPrefix('wordpress_deleteExistingPost'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + // === Comments === + case 'getAllPostComments': + $response = Hooks::apply(Config::withPrefix('wordpress_getAllPostComments'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'getPostComments': + $response = Hooks::apply(Config::withPrefix('wordpress_getPostComments'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'getUserComments': + $response = Hooks::apply(Config::withPrefix('wordpress_getUserComments'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'getUserCommentsByEmail': + $response = Hooks::apply(Config::withPrefix('wordpress_getUserCommentsByEmail'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'getCommentMetadata': + $response = Hooks::apply(Config::withPrefix('wordpress_getCommentMetadata'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'getCommentMetadataByMetaKey': + $response = Hooks::apply(Config::withPrefix('wordpress_getCommentMetadataByMetaKey'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'createNewComment': + $response = Hooks::apply(Config::withPrefix('wordpress_createNewComment'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'replyToComment': + $response = Hooks::apply(Config::withPrefix('wordpress_replyToComment'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'deleteExistingComment': + $response = Hooks::apply(Config::withPrefix('wordpress_deleteExistingComment'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + // === Post Types === + case 'getAllPostTypes': + $response = Hooks::apply(Config::withPrefix('wordpress_getAllPostTypes'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'getPostType': + $response = Hooks::apply(Config::withPrefix('wordpress_getPostType'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'registerPostType': + $response = Hooks::apply(Config::withPrefix('wordpress_registerPostType'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'unregisterPostType': + $response = Hooks::apply(Config::withPrefix('wordpress_unregisterPostType'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'addPostTypeFeatures': + $response = Hooks::apply(Config::withPrefix('wordpress_addPostTypeFeatures'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + // === Post Tags === + case 'createPostTag': + $response = Hooks::apply(Config::withPrefix('wordpress_createPostTag'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'updatePostTag': + $response = Hooks::apply(Config::withPrefix('wordpress_updatePostTag'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'deletePostTag': + $response = Hooks::apply(Config::withPrefix('wordpress_deletePostTag'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'getAllPostTags': + $response = Hooks::apply(Config::withPrefix('wordpress_getAllPostTags'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'getPostTag': + $response = Hooks::apply(Config::withPrefix('wordpress_getPostTag'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'addTaxonomyToPost': + $response = Hooks::apply(Config::withPrefix('wordpress_addTaxonomyToPost'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'removeTaxonomyFromPost': + $response = Hooks::apply(Config::withPrefix('wordpress_removeTaxonomyFromPost'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'addTagsToPost': + $response = Hooks::apply(Config::withPrefix('wordpress_addTagsToPost'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'removeTagsFromPost': + $response = Hooks::apply(Config::withPrefix('wordpress_removeTagsFromPost'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + // === Media === + case 'addNewImage': + $response = Hooks::apply(Config::withPrefix('wordpress_addNewImage'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'deleteMedia': + $response = Hooks::apply(Config::withPrefix('wordpress_deleteMedia'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'renameMedia': + $response = Hooks::apply(Config::withPrefix('wordpress_renameMedia'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'getAllMedia': + $response = Hooks::apply(Config::withPrefix('wordpress_getAllMedia'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'getMediaByTitle': + $response = Hooks::apply(Config::withPrefix('wordpress_getMediaByTitle'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'getMediaById': + $response = Hooks::apply(Config::withPrefix('wordpress_getMediaById'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + // === Taxonomies === + case 'getAllTaxonomies': + $response = Hooks::apply(Config::withPrefix('wordpress_getAllTaxonomies'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'getTaxonomy': + $response = Hooks::apply(Config::withPrefix('wordpress_getTaxonomy'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'registerTaxonomy': + $response = Hooks::apply(Config::withPrefix('wordpress_registerTaxonomy'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'unregisterTaxonomy': + $response = Hooks::apply(Config::withPrefix('wordpress_unregisterTaxonomy'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + // === Terms === + case 'getAllTerms': + $response = Hooks::apply(Config::withPrefix('wordpress_getAllTerms'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'getTerm': + $response = Hooks::apply(Config::withPrefix('wordpress_getTerm'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'getTermByField': + $response = Hooks::apply(Config::withPrefix('wordpress_getTermByField'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'getTermByTaxonomy': + $response = Hooks::apply(Config::withPrefix('wordpress_getTermByTaxonomy'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'createNewTerm': + $response = Hooks::apply(Config::withPrefix('wordpress_createNewTerm'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'updateTerm': + $response = Hooks::apply(Config::withPrefix('wordpress_updateTerm'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'termDelete': + $response = Hooks::apply(Config::withPrefix('wordpress_termDelete'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + // === Categories === + case 'createCategory': + $response = Hooks::apply(Config::withPrefix('wordpress_createCategory'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'updateCategory': + $response = Hooks::apply(Config::withPrefix('wordpress_updateCategory'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'deleteCategory': + $response = Hooks::apply(Config::withPrefix('wordpress_deleteCategory'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'addCategoryToPost': + $response = Hooks::apply(Config::withPrefix('wordpress_addCategoryToPost'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'getAllCategories': + $response = Hooks::apply(Config::withPrefix('wordpress_getAllCategories'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'getCategory': + $response = Hooks::apply(Config::withPrefix('wordpress_getCategory'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + // === Product Tags (WooCommerce) === + case 'createProductTag': + $response = Hooks::apply(Config::withPrefix('wordpress_createProductTag'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'updateProductTag': + $response = Hooks::apply(Config::withPrefix('wordpress_updateProductTag'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'deleteProductTag': + $response = Hooks::apply(Config::withPrefix('wordpress_deleteProductTag'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'getAllProductTags': + $response = Hooks::apply(Config::withPrefix('wordpress_getAllProductTags'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'getProductTag': + $response = Hooks::apply(Config::withPrefix('wordpress_getProductTag'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + // === Product Categories (WooCommerce) === + case 'createProductCategory': + $response = Hooks::apply(Config::withPrefix('wordpress_createProductCategory'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'updateProductCategory': + $response = Hooks::apply(Config::withPrefix('wordpress_updateProductCategory'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'deleteProductCategory': + $response = Hooks::apply(Config::withPrefix('wordpress_deleteProductCategory'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'getAllProductCategories': + $response = Hooks::apply(Config::withPrefix('wordpress_getAllProductCategories'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'getProductCategory': + $response = Hooks::apply(Config::withPrefix('wordpress_getProductCategory'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + // === Product Types (WooCommerce) === + case 'createProductType': + $response = Hooks::apply(Config::withPrefix('wordpress_createProductType'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'updateProductType': + $response = Hooks::apply(Config::withPrefix('wordpress_updateProductType'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'deleteProductType': + $response = Hooks::apply(Config::withPrefix('wordpress_deleteProductType'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'getAllProductTypes': + $response = Hooks::apply(Config::withPrefix('wordpress_getAllProductTypes'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'getProductType': + $response = Hooks::apply(Config::withPrefix('wordpress_getProductType'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + // === Plugin Management === + case 'checkPluginActivationStatus': + $response = Hooks::apply(Config::withPrefix('wordpress_checkPluginActivationStatus'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + case 'activatePlugin': + $response = Hooks::apply(Config::withPrefix('wordpress_activatePlugin'), $defaultResponse, $fieldData, $integrationDetails); + + break; + + default: + $response = [ + 'success' => false, + 'message' => __('Invalid action', 'bit-integrations'), + ]; + + break; + } + + $responseType = isset($response['success']) && $response['success'] ? 'success' : 'error'; + LogHandler::save($this->_integrationID, ['type' => 'WordPress', 'type_name' => $mainAction], $responseType, $response); + + return $response; + } + + private function generateReqDataFromFieldMap($fieldMap, $fieldValues) + { + $dataFinal = []; + + foreach ($fieldMap as $item) { + $triggerValue = $item->formField; + $actionValue = $item->wordPressField; + + $dataFinal[$actionValue] = $triggerValue === 'custom' && isset($item->customValue) + ? Common::replaceFieldWithValue($item->customValue, $fieldValues) + : ($fieldValues[$triggerValue] ?? ''); + } + + return $dataFinal; + } +} diff --git a/backend/Actions/WordPress/Routes.php b/backend/Actions/WordPress/Routes.php new file mode 100644 index 000000000..af14fffed --- /dev/null +++ b/backend/Actions/WordPress/Routes.php @@ -0,0 +1,18 @@ +flow_details; + $integId = $integrationData->id; + $fieldMap = isset($integrationDetails->field_map) ? $integrationDetails->field_map : []; + + $recordApiHelper = new RecordApiHelper($integrationDetails, $integId); + $wordPressResponse = $recordApiHelper->execute($fieldValues, $fieldMap, $integrationDetails); + + return $wordPressResponse; + } + + public function getUsers() + { + $users = get_users(['fields' => ['ID', 'user_login', 'user_email', 'display_name']]); + + $result = array_map(function ($user) { + return [ + 'id' => $user->ID, + 'label' => $user->display_name . ' (' . $user->user_email . ')', + 'value' => $user->ID, + ]; + }, $users); + + wp_send_json_success($result); + } + + public function getUserRoles() + { + global $wp_roles; + + if (!isset($wp_roles)) { + $wp_roles = new WP_Roles(); + } + + $roles = []; + + foreach ($wp_roles->roles as $key => $role) { + $roles[] = [ + 'label' => $role['name'], + 'value' => $key, + ]; + } + + wp_send_json_success($roles); + } + + public function getPostTypes() + { + $postTypes = get_post_types(['public' => true], 'objects'); + + $result = []; + + foreach ($postTypes as $postType) { + $result[] = [ + 'label' => $postType->label, + 'value' => $postType->name, + ]; + } + + wp_send_json_success($result); + } + + public function getPosts($data = null) + { + $postType = isset($data->postType) ? sanitize_text_field($data->postType) : null; + + $args = [ + 'posts_per_page' => -1, + 'post_status' => 'any', + ]; + + if ($postType) { + $args['post_type'] = $postType; + } + + $posts = get_posts($args); + + $result = array_map(function ($post) { + return [ + 'label' => $post->post_title, + 'value' => $post->ID, + ]; + }, $posts); + + wp_send_json_success($result); + } + + public function getPostTags() + { + wp_send_json_success($this->getTermsBy('post_tag')); + } + + public function getTaxonomies() + { + $taxonomies = get_taxonomies([], 'objects'); + + $result = array_values(array_map(function ($taxonomy) { + return [ + 'label' => $taxonomy->label, + 'value' => $taxonomy->name, + ]; + }, $taxonomies)); + + wp_send_json_success($result); + } + + public function getPostCategory() + { + wp_send_json_success($this->getTermsBy('category')); + } + + public function getTermsByTaxonomy($data = null) + { + $taxonomy = isset($data->taxonomy) ? sanitize_text_field($data->taxonomy) : ''; + + if (!taxonomy_exists($taxonomy)) { + wp_send_json_error(__('Invalid taxonomy.', 'bit-integrations')); + } + + wp_send_json_success($this->getTermsBy($taxonomy, 'term_id', false, 'slug')); + } + + private function getTermsBy($taxonomy, $orderby = 'term_id', $hideEmpty = false, $valueKey = 'term_id') + { + $terms = get_terms([ + 'taxonomy' => $taxonomy, + 'orderby' => $orderby, + 'hide_empty' => $hideEmpty, + ]); + + if (is_wp_error($terms)) { + return []; + } + + return array_map(function ($term) use ($valueKey) { + return [ + 'label' => $term->name, + 'value' => $term->{$valueKey}, + ]; + }, $terms); + } +} diff --git a/backend/Core/Util/AllTriggersName.php b/backend/Core/Util/AllTriggersName.php index fce2979b7..434740fef 100644 --- a/backend/Core/Util/AllTriggersName.php +++ b/backend/Core/Util/AllTriggersName.php @@ -143,6 +143,7 @@ public static function allTriggersName() 'WCMemberships' => ['name' => 'WooCommerce Memberships', 'isPro' => true, 'is_active' => false], 'WCSubscriptions' => ['name' => 'WooCommerce Subscriptions', 'isPro' => true, 'is_active' => false], 'Webhook' => ['name' => 'Webhook', 'isPro' => true, 'is_active' => false], + 'WordPress' => ['name' => 'WordPress', 'isPro' => true, 'is_active' => false], 'WeForms' => ['name' => 'WeForms', 'isPro' => true, 'is_active' => false], 'WeDocs' => ['name' => 'weDocs', 'isPro' => true, 'is_active' => false], 'WPCourseware' => ['name' => 'WP Courseware', 'isPro' => true, 'is_active' => false], diff --git a/frontend/src/components/AllIntegrations/EditInteg.jsx b/frontend/src/components/AllIntegrations/EditInteg.jsx index d1354c08d..7c5c36931 100644 --- a/frontend/src/components/AllIntegrations/EditInteg.jsx +++ b/frontend/src/components/AllIntegrations/EditInteg.jsx @@ -172,6 +172,7 @@ const EditWishlistMember = lazy(() => import('./WishlistMember/EditWishlistMembe const EditCreatorLms = lazy(() => import('./CreatorLms/EditCreatorLms')) const EditUltimateAffiliatePro = lazy(() => import('./UltimateAffiliatePro/EditUltimateAffiliatePro')) const EditFluentCart = lazy(() => import('./FluentCart/EditFluentCart')) +const EditWordPress = lazy(() => import('./WordPress/EditWordPress')) const EditNinjaTables = lazy(() => import('./NinjaTables/EditNinjaTables')) const EditWCAffiliate = lazy(() => import('./WCAffiliate/EditWCAffiliate')) const EditWPCafe = lazy(() => import('./WPCafe/EditWPCafe')) @@ -593,6 +594,8 @@ const IntegType = memo(({ allIntegURL, flow }) => { return case 'FluentCart': return + case 'WordPress': + return case 'Ninja Tables': return case 'WC Affiliate': diff --git a/frontend/src/components/AllIntegrations/IntegInfo.jsx b/frontend/src/components/AllIntegrations/IntegInfo.jsx index 092b907d9..fb11eabc6 100644 --- a/frontend/src/components/AllIntegrations/IntegInfo.jsx +++ b/frontend/src/components/AllIntegrations/IntegInfo.jsx @@ -175,6 +175,7 @@ const UltimateAffiliateProAuthorization = lazy( () => import('./UltimateAffiliatePro/UltimateAffiliateProAuthorization') ) const FluentCartAuthorization = lazy(() => import('./FluentCart/FluentCartAuthorization')) +const WordPressAuthorization = lazy(() => import('./WordPress/WordPressAuthorization')) const NinjaTablesAuthorization = lazy(() => import('./NinjaTables/NinjaTablesAuthorization')) const WCAffiliateAuthorization = lazy(() => import('./WCAffiliate/WCAffiliateAuthorization')) const WPCafeAuthorization = lazy(() => import('./WPCafe/WPCafeAuthorization')) @@ -636,6 +637,8 @@ export default function IntegInfo() { ) case 'FluentCart': return + case 'WordPress': + return case 'Ninja Tables': return case 'WC Affiliate': diff --git a/frontend/src/components/AllIntegrations/NewInteg.jsx b/frontend/src/components/AllIntegrations/NewInteg.jsx index 0db113b5c..cd9d60c6d 100644 --- a/frontend/src/components/AllIntegrations/NewInteg.jsx +++ b/frontend/src/components/AllIntegrations/NewInteg.jsx @@ -171,6 +171,7 @@ const WishlistMember = lazy(() => import('./WishlistMember/WishlistMember')) const CreatorLms = lazy(() => import('./CreatorLms/CreatorLms')) const UltimateAffiliatePro = lazy(() => import('./UltimateAffiliatePro/UltimateAffiliatePro')) const FluentCart = lazy(() => import('./FluentCart/FluentCart')) +const WordPress = lazy(() => import('./WordPress/WordPress')) const NinjaTables = lazy(() => import('./NinjaTables/NinjaTables')) const WCAffiliate = lazy(() => import('./WCAffiliate/WCAffiliate')) const WPCafe = lazy(() => import('./WPCafe/WPCafe')) @@ -1668,6 +1669,15 @@ export default function NewInteg({ allIntegURL }) { setFlow={setFlow} /> ) + case 'WordPress': + return ( + + ) case 'Ninja Tables': return ( + + +
+ {__('Integration Name:', 'bit-integrations')} + handleInput(e, wordPressConf, setWordPressConf)} + name="name" + value={wordPressConf.name} + type="text" + placeholder={__('Integration Name...', 'bit-integrations')} + /> +
+
+ + + + + + + saveActionConf({ + flow, + setFlow, + allIntegURL, + conf: wordPressConf, + navigate, + id, + edit: 1, + setIsLoading, + setSnackbar + }) + } + disabled={!checkMappedFields(wordPressConf)} + isLoading={isLoading} + dataConf={wordPressConf} + setDataConf={setWordPressConf} + formFields={formFields} + /> +
+ + ) +} diff --git a/frontend/src/components/AllIntegrations/WordPress/WordPress.jsx b/frontend/src/components/AllIntegrations/WordPress/WordPress.jsx new file mode 100644 index 000000000..80eab4856 --- /dev/null +++ b/frontend/src/components/AllIntegrations/WordPress/WordPress.jsx @@ -0,0 +1,95 @@ +import { useState } from 'react' +import { useNavigate, useParams } from 'react-router' +import BackIcn from '../../../Icons/BackIcn' +import { __ } from '../../../Utils/i18nwrap' +import SnackMsg from '../../Utilities/SnackMsg' +import { saveIntegConfig } from '../IntegrationHelpers/IntegrationHelpers' +import IntegrationStepThree from '../IntegrationHelpers/IntegrationStepThree' +import WordPressAuthorization from './WordPressAuthorization' +import { checkMappedFields } from './WordPressCommonFunc' +import WordPressIntegLayout from './WordPressIntegLayout' + +export default function WordPress({ formFields, setFlow, flow, allIntegURL }) { + const navigate = useNavigate() + const { formID } = useParams() + const [isLoading, setIsLoading] = useState(false) + const [step, setStep] = useState(1) + const [snack, setSnackbar] = useState({ show: false }) + const [wordPressConf, setWordPressConf] = useState({ + name: 'WordPress', + type: 'WordPress', + field_map: [{ formField: '', wordPressField: '' }], + wordPressFields: [], + mainAction: '', + actions: {} + }) + + const nextPage = val => { + setTimeout(() => { + document.getElementById('btcd-settings-wrp').scrollTop = 0 + }, 300) + + if (val === 3) { + if (!wordPressConf.mainAction) { + setSnackbar({ show: true, msg: __('Please select an action to continue.', 'bit-integrations') }) + return + } + if (!checkMappedFields(wordPressConf)) { + setSnackbar({ show: true, msg: __('Please map all required fields to continue.', 'bit-integrations') }) + return + } + } + setStep(val) + } + + return ( +
+ +
+ + {/* STEP 1 */} + + + {/* STEP 2 */} +
+ +
+ +
+ + {/* STEP 3 */} + + saveIntegConfig(flow, setFlow, allIntegURL, wordPressConf, navigate, '', '', setIsLoading) + } + isLoading={isLoading} + /> +
+ ) +} diff --git a/frontend/src/components/AllIntegrations/WordPress/WordPressAuthorization.jsx b/frontend/src/components/AllIntegrations/WordPress/WordPressAuthorization.jsx new file mode 100644 index 000000000..51694eafe --- /dev/null +++ b/frontend/src/components/AllIntegrations/WordPress/WordPressAuthorization.jsx @@ -0,0 +1,77 @@ +import { useState } from 'react' +import BackIcn from '../../../Icons/BackIcn' +import bitsFetch from '../../../Utils/bitsFetch' +import { __ } from '../../../Utils/i18nwrap' +import LoaderSm from '../../Loaders/LoaderSm' + +export default function WordPressAuthorization({ + wordPressConf, + setWordPressConf, + step, + nextPage, + isLoading, + setIsLoading, + setSnackbar +}) { + const [isAuthorized, setIsAuthorized] = useState(false) + + const authorizeHandler = () => { + setIsLoading('auth') + bitsFetch({}, 'wordpress_authorize').then(result => { + if (result?.success) { + setIsAuthorized(true) + setSnackbar({ show: true, msg: __('WordPress connected', 'bit-integrations') }) + } else { + setSnackbar({ show: true, msg: result?.data || __('Authorization failed', 'bit-integrations') }) + } + setIsLoading(false) + }) + } + + const handleInput = e => { + const newConf = { ...wordPressConf } + newConf[e.target.name] = e.target.value + setWordPressConf(newConf) + } + + return ( +
+
+ {__('Integration Name:', 'bit-integrations')} +
+ + +
+

{__('WordPress is always available. Click Connect to proceed.', 'bit-integrations')}

+
+ + + +
+ +
+ ) +} diff --git a/frontend/src/components/AllIntegrations/WordPress/WordPressCommonFunc.js b/frontend/src/components/AllIntegrations/WordPress/WordPressCommonFunc.js new file mode 100644 index 000000000..d8723ad33 --- /dev/null +++ b/frontend/src/components/AllIntegrations/WordPress/WordPressCommonFunc.js @@ -0,0 +1,308 @@ +import { create } from 'mutative' +import toast from 'react-hot-toast' +import bitsFetch from '../../../Utils/bitsFetch' +import { __ } from '../../../Utils/i18nwrap' +import { + AddCategoryToPostFields, + AddImageFields, + CategoryIdField, + CommentIdField, + CommentMetaByKeyFields, + CreateCategoryFields, + CreateCommentFields, + CreatePostFields, + CreateProductCategoryFields, + CreateProductTagFields, + CreateProductTypeFields, + CreateRoleFields, + CreateTagFields, + CreateTermFields, + CreateUserFields, + EmptyFields, + MediaIdField, + MediaTitleField, + PluginPathField, + PostIdField, + PostMetaByKeyFields, + PostsByMetaFields, + PostTypeFeaturesFields, + PostTypeField, + ProductTypeIdField, + RegisterPostTypeFields, + RegisterTaxonomyFields, + RenameMediaFields, + ReplyCommentFields, + RoleCapabilitiesFields, + RoleNameField, + TagIdField, + TagsToPostFields, + TaxonomyField, + TaxonomyToPostFields, + TermByFieldFields, + TermIdTaxonomyFields, + UpdateCategoryFields, + UpdatePostFields, + UpdatePostStatusFields, + UpdateProductCategoryFields, + UpdateProductTagFields, + UpdateProductTypeFields, + UpdateTagFields, + UpdateTermFields, + UpdateUserFields, + UpdateUserMetaFields, + UpdateUserRoleFields, + UserByFieldFields, + UserCapabilitiesFields, + UserEmailField, + UserIdField, + UserMetaFields, + UserRoleField, + UserRoleManageFields, +} from './staticData' + +export const handleInput = (e, wordPressConf, setWordPressConf) => { + const { name, value } = e.target + setWordPressConf(prevConf => + create(prevConf, draftConf => { + draftConf[name] = value + }) + ) +} + +export const getFieldsForAction = action => { + switch (action) { + // User Management + case 'createNewUser': return CreateUserFields + case 'updateUser': return UpdateUserFields + case 'deleteExistingUser': return UserIdField + // User Retrieval + case 'getAllUsers': return EmptyFields + case 'getAllUsersByRole': return UserRoleField + case 'getUserById': return UserIdField + case 'getUserByEmail': return UserEmailField + case 'getUserByField': return UserByFieldFields + // User Metadata + case 'getUserMetadata': return UserIdField + case 'getUserMetadataByMetaKey': return UserMetaFields + case 'updateUserMetadata': return UpdateUserMetaFields + // Role Management + case 'createRole': return CreateRoleFields + case 'deleteRole': return RoleNameField + case 'getAllRoles': return EmptyFields + case 'addUserRoles': return UserRoleManageFields + case 'removeUserRole': return UserRoleManageFields + case 'updateUserRole': return UpdateUserRoleFields + // Capabilities + case 'getAllCapabilities': return EmptyFields + case 'getRoleCapabilities': return RoleNameField + case 'addRoleCapabilities': return RoleCapabilitiesFields + case 'removeRoleCapabilities': return RoleCapabilitiesFields + case 'getUserCapabilities': return UserIdField + case 'addUserCapabilities': return UserCapabilitiesFields + case 'removeUserCapabilities': return UserCapabilitiesFields + // Post Management + case 'getAllPosts': return EmptyFields + case 'getPostById': return PostIdField + case 'getPostsByPostType': return PostTypeField + case 'getPostsByMetadata': return PostsByMetaFields + case 'getPostMetadata': return PostIdField + case 'getPostMetadataByMetaKey': return PostMetaByKeyFields + case 'getPostPermalink': return PostIdField + case 'getPostContent': return PostIdField + case 'getPostExcerpt': return PostIdField + case 'getPostStatus': return PostIdField + case 'createNewPost': return CreatePostFields + case 'updateExistingPost': return UpdatePostFields + case 'updatePostStatus': return UpdatePostStatusFields + case 'deleteExistingPost': return PostIdField + // Comments + case 'getAllPostComments': return EmptyFields + case 'getPostComments': return PostIdField + case 'getUserComments': return UserIdField + case 'getUserCommentsByEmail': return UserEmailField + case 'getCommentMetadata': return CommentIdField + case 'getCommentMetadataByMetaKey': return CommentMetaByKeyFields + case 'createNewComment': return CreateCommentFields + case 'replyToComment': return ReplyCommentFields + case 'deleteExistingComment': return CommentIdField + // Post Types + case 'getAllPostTypes': return EmptyFields + case 'getPostType': return PostTypeField + case 'registerPostType': return RegisterPostTypeFields + case 'unregisterPostType': return PostTypeField + case 'addPostTypeFeatures': return PostTypeFeaturesFields + // Post Tags + case 'createPostTag': return CreateTagFields + case 'updatePostTag': return UpdateTagFields + case 'deletePostTag': return TagIdField + case 'getAllPostTags': return EmptyFields + case 'getPostTag': return TagIdField + case 'addTaxonomyToPost': return TaxonomyToPostFields + case 'removeTaxonomyFromPost': return TaxonomyToPostFields + case 'addTagsToPost': return TagsToPostFields + case 'removeTagsFromPost': return TagsToPostFields + // Media + case 'addNewImage': return AddImageFields + case 'deleteMedia': return MediaIdField + case 'renameMedia': return RenameMediaFields + case 'getAllMedia': return EmptyFields + case 'getMediaByTitle': return MediaTitleField + case 'getMediaById': return MediaIdField + // Taxonomies + case 'getAllTaxonomies': return EmptyFields + case 'getTaxonomy': return TaxonomyField + case 'registerTaxonomy': return RegisterTaxonomyFields + case 'unregisterTaxonomy': return TaxonomyField + // Terms + case 'getAllTerms': return TaxonomyField + case 'getTerm': return TermIdTaxonomyFields + case 'getTermByField': return TermByFieldFields + case 'getTermByTaxonomy': return TaxonomyField + case 'createNewTerm': return CreateTermFields + case 'updateTerm': return UpdateTermFields + case 'termDelete': return TermIdTaxonomyFields + // Categories + case 'createCategory': return CreateCategoryFields + case 'updateCategory': return UpdateCategoryFields + case 'deleteCategory': return CategoryIdField + case 'addCategoryToPost': return AddCategoryToPostFields + case 'getAllCategories': return EmptyFields + case 'getCategory': return CategoryIdField + // WooCommerce Product Tags + case 'createProductTag': return CreateProductTagFields + case 'updateProductTag': return UpdateProductTagFields + case 'deleteProductTag': return TagIdField + case 'getAllProductTags': return EmptyFields + case 'getProductTag': return TagIdField + // WooCommerce Product Categories + case 'createProductCategory': return CreateProductCategoryFields + case 'updateProductCategory': return UpdateProductCategoryFields + case 'deleteProductCategory': return CategoryIdField + case 'getAllProductCategories': return EmptyFields + case 'getProductCategory': return CategoryIdField + // WooCommerce Product Types + case 'createProductType': return CreateProductTypeFields + case 'updateProductType': return UpdateProductTypeFields + case 'deleteProductType': return ProductTypeIdField + case 'getAllProductTypes': return EmptyFields + case 'getProductType': return ProductTypeIdField + // Plugin + case 'checkPluginActivationStatus': return PluginPathField + case 'activatePlugin': return PluginPathField + default: return EmptyFields + } +} + +export const generateMappedField = fields => { + const requiredFlds = fields.filter(fld => fld.required === true) + return requiredFlds.length > 0 + ? requiredFlds.map(field => ({ formField: '', wordPressField: field.key })) + : [{ formField: '', wordPressField: '' }] +} + +export const checkMappedFields = wordPressConf => { + const mappedFields = wordPressConf?.field_map + ? wordPressConf.field_map.filter( + mappedField => + !mappedField.formField || + !mappedField.wordPressField || + (mappedField.formField === 'custom' && !mappedField.customValue) + ) + : [] + return mappedFields.length === 0 +} + +export const refreshWordPressUsers = (setWordPressConf, setIsLoading) => { + setIsLoading(true) + bitsFetch(null, 'get_wordpress_users') + .then(result => { + if (result?.success) { + setWordPressConf(prevConf => + create(prevConf, draftConf => { + draftConf.allUsers = result.data + }) + ) + toast.success(__('Users refreshed', 'bit-integrations')) + } else { + toast.error(__('Failed to fetch users', 'bit-integrations')) + } + setIsLoading(false) + }) + .catch(() => setIsLoading(false)) +} + +export const refreshWordPressRoles = (setWordPressConf, setIsLoading) => { + setIsLoading(true) + bitsFetch(null, 'get_wordpress_user_roles') + .then(result => { + if (result?.success) { + setWordPressConf(prevConf => + create(prevConf, draftConf => { + draftConf.allRoles = result.data + }) + ) + toast.success(__('Roles refreshed', 'bit-integrations')) + } else { + toast.error(__('Failed to fetch roles', 'bit-integrations')) + } + setIsLoading(false) + }) + .catch(() => setIsLoading(false)) +} + +export const refreshWordPressPostTypes = (setWordPressConf, setIsLoading) => { + setIsLoading(true) + bitsFetch(null, 'get_wordpress_post_types') + .then(result => { + if (result?.success) { + setWordPressConf(prevConf => + create(prevConf, draftConf => { + draftConf.allPostTypes = result.data + }) + ) + toast.success(__('Post types refreshed', 'bit-integrations')) + } else { + toast.error(__('Failed to fetch post types', 'bit-integrations')) + } + setIsLoading(false) + }) + .catch(() => setIsLoading(false)) +} + +export const refreshWordPressPosts = (postType, setWordPressConf, setIsLoading) => { + setIsLoading(true) + bitsFetch({ postType: postType || '' }, 'get_wordpress_posts') + .then(result => { + if (result?.success) { + setWordPressConf(prevConf => + create(prevConf, draftConf => { + draftConf.allPosts = result.data + }) + ) + toast.success(__('Posts refreshed', 'bit-integrations')) + } else { + toast.error(__('Failed to fetch posts', 'bit-integrations')) + } + setIsLoading(false) + }) + .catch(() => setIsLoading(false)) +} + +export const refreshWordPressTaxonomies = (setWordPressConf, setIsLoading) => { + setIsLoading(true) + bitsFetch(null, 'get_wordpress_taxonomies') + .then(result => { + if (result?.success) { + setWordPressConf(prevConf => + create(prevConf, draftConf => { + draftConf.allTaxonomies = result.data + }) + ) + toast.success(__('Taxonomies refreshed', 'bit-integrations')) + } else { + toast.error(__('Failed to fetch taxonomies', 'bit-integrations')) + } + setIsLoading(false) + }) + .catch(() => setIsLoading(false)) +} diff --git a/frontend/src/components/AllIntegrations/WordPress/WordPressFieldMap.jsx b/frontend/src/components/AllIntegrations/WordPress/WordPressFieldMap.jsx new file mode 100644 index 000000000..89565125d --- /dev/null +++ b/frontend/src/components/AllIntegrations/WordPress/WordPressFieldMap.jsx @@ -0,0 +1,104 @@ +import { useRecoilValue } from 'recoil' +import { $appConfigState } from '../../../GlobalStates' +import { __, sprintf } from '../../../Utils/i18nwrap' +import { SmartTagField } from '../../../Utils/StaticData/SmartTagField' +import TagifyInput from '../../Utilities/TagifyInput' +import { + addFieldMap, + delFieldMap, + handleCustomValue, + handleFieldMapping +} from '../GlobalIntegrationHelper' + +export default function WordPressFieldMap({ i, formFields, field, wordPressConf, setWordPressConf }) { + const btcbi = useRecoilValue($appConfigState) + const { isPro } = btcbi + + const requiredFlds = wordPressConf?.wordPressFields?.filter(fld => fld.required === true) || [] + const nonRequiredFlds = wordPressConf?.wordPressFields?.filter(fld => fld.required === false) || [] + + return ( +
+
+
+ + + {field.formField === 'custom' && ( + handleCustomValue(e, i, wordPressConf, setWordPressConf)} + label={__('Custom Value', 'bit-integrations')} + className="mr-2" + type="text" + value={field.customValue} + placeholder={__('Custom Value', 'bit-integrations')} + formFields={formFields} + /> + )} + + +
+ {i >= requiredFlds.length && ( + <> + + + + )} +
+
+ ) +} diff --git a/frontend/src/components/AllIntegrations/WordPress/WordPressIntegLayout.jsx b/frontend/src/components/AllIntegrations/WordPress/WordPressIntegLayout.jsx new file mode 100644 index 000000000..3f4e5f47e --- /dev/null +++ b/frontend/src/components/AllIntegrations/WordPress/WordPressIntegLayout.jsx @@ -0,0 +1,98 @@ +import { create } from 'mutative' +import { __ } from '../../../Utils/i18nwrap' +import Loader from '../../Loaders/Loader' +import { addFieldMap } from '../IntegrationHelpers/IntegrationHelpers' +import { generateMappedField, getFieldsForAction } from './WordPressCommonFunc' +import WordPressFieldMap from './WordPressFieldMap' +import { modules } from './staticData' + +export default function WordPressIntegLayout({ + formFields, + wordPressConf, + setWordPressConf, + isLoading, + setIsLoading, + setSnackbar +}) { + const handleMainAction = value => { + setWordPressConf(prevConf => + create(prevConf, draftConf => { + draftConf.mainAction = value + const fields = getFieldsForAction(value) + draftConf.wordPressFields = fields + draftConf.field_map = generateMappedField(fields) + }) + ) + } + + return ( + <> +
+
+ {__('Action:', 'bit-integrations')} + +
+ + {isLoading && ( + + )} + + {wordPressConf?.mainAction && !isLoading && ( + <> +
+ {__('Map Fields', 'bit-integrations')} +
+
+
+
+ {__('Form Fields', 'bit-integrations')} +
+
+ {__('WordPress Fields', 'bit-integrations')} +
+
+ + {wordPressConf.field_map.map((itm, i) => ( + + ))} + +
+ +
+ + )} +
+
+ + ) +} diff --git a/frontend/src/components/AllIntegrations/WordPress/staticData.js b/frontend/src/components/AllIntegrations/WordPress/staticData.js new file mode 100644 index 000000000..3802e0718 --- /dev/null +++ b/frontend/src/components/AllIntegrations/WordPress/staticData.js @@ -0,0 +1,466 @@ +import { __ } from '../../../Utils/i18nwrap' + +export const modules = [ + // User Management + { name: 'createNewUser', label: __('Create New User', 'bit-integrations'), is_pro: true }, + { name: 'updateUser', label: __('Update User', 'bit-integrations'), is_pro: true }, + { name: 'deleteExistingUser', label: __('Delete User', 'bit-integrations'), is_pro: true }, + // User Retrieval + { name: 'getAllUsers', label: __('Get All Users', 'bit-integrations'), is_pro: true }, + { name: 'getAllUsersByRole', label: __('Get All Users By Role', 'bit-integrations'), is_pro: true }, + { name: 'getUserById', label: __('Get User By ID', 'bit-integrations'), is_pro: true }, + { name: 'getUserByEmail', label: __('Get User By Email', 'bit-integrations'), is_pro: true }, + { name: 'getUserByField', label: __('Get User By Field', 'bit-integrations'), is_pro: true }, + // User Metadata + { name: 'getUserMetadata', label: __('Get User Metadata', 'bit-integrations'), is_pro: true }, + { name: 'getUserMetadataByMetaKey', label: __('Get User Metadata By Meta Key', 'bit-integrations'), is_pro: true }, + { name: 'updateUserMetadata', label: __('Update User Metadata', 'bit-integrations'), is_pro: true }, + // Role Management + { name: 'createRole', label: __('Create Role', 'bit-integrations'), is_pro: true }, + { name: 'deleteRole', label: __('Delete Role', 'bit-integrations'), is_pro: true }, + { name: 'getAllRoles', label: __('Get All Roles', 'bit-integrations'), is_pro: true }, + { name: 'addUserRoles', label: __('Add User Roles', 'bit-integrations'), is_pro: true }, + { name: 'removeUserRole', label: __('Remove User Role', 'bit-integrations'), is_pro: true }, + { name: 'updateUserRole', label: __('Update User Role', 'bit-integrations'), is_pro: true }, + // Capabilities + { name: 'getAllCapabilities', label: __('Get All Capabilities', 'bit-integrations'), is_pro: true }, + { name: 'getRoleCapabilities', label: __('Get Role Capabilities', 'bit-integrations'), is_pro: true }, + { name: 'addRoleCapabilities', label: __('Add Role Capabilities', 'bit-integrations'), is_pro: true }, + { name: 'removeRoleCapabilities', label: __('Remove Role Capabilities', 'bit-integrations'), is_pro: true }, + { name: 'getUserCapabilities', label: __('Get User Capabilities', 'bit-integrations'), is_pro: true }, + { name: 'addUserCapabilities', label: __('Add User Capabilities', 'bit-integrations'), is_pro: true }, + { name: 'removeUserCapabilities', label: __('Remove User Capabilities', 'bit-integrations'), is_pro: true }, + // Post Management + { name: 'getAllPosts', label: __('Get All Posts', 'bit-integrations'), is_pro: true }, + { name: 'getPostById', label: __('Get Post By ID', 'bit-integrations'), is_pro: true }, + { name: 'getPostsByPostType', label: __('Get Posts By Post Type', 'bit-integrations'), is_pro: true }, + { name: 'getPostsByMetadata', label: __('Get Posts By Metadata', 'bit-integrations'), is_pro: true }, + { name: 'getPostMetadata', label: __('Get Post Metadata', 'bit-integrations'), is_pro: true }, + { name: 'getPostMetadataByMetaKey', label: __('Get Post Metadata By Meta Key', 'bit-integrations'), is_pro: true }, + { name: 'getPostPermalink', label: __('Get Post Permalink', 'bit-integrations'), is_pro: true }, + { name: 'getPostContent', label: __('Get Post Content', 'bit-integrations'), is_pro: true }, + { name: 'getPostExcerpt', label: __('Get Post Excerpt', 'bit-integrations'), is_pro: true }, + { name: 'getPostStatus', label: __('Get Post Status', 'bit-integrations'), is_pro: true }, + { name: 'createNewPost', label: __('Create New Post', 'bit-integrations'), is_pro: true }, + { name: 'updateExistingPost', label: __('Update Existing Post', 'bit-integrations'), is_pro: true }, + { name: 'updatePostStatus', label: __('Update Post Status', 'bit-integrations'), is_pro: true }, + { name: 'deleteExistingPost', label: __('Delete Existing Post', 'bit-integrations'), is_pro: true }, + // Comments + { name: 'getAllPostComments', label: __('Get All Post Comments', 'bit-integrations'), is_pro: true }, + { name: 'getPostComments', label: __('Get Post Comments', 'bit-integrations'), is_pro: true }, + { name: 'getUserComments', label: __('Get User Comments', 'bit-integrations'), is_pro: true }, + { name: 'getUserCommentsByEmail', label: __('Get User Comments By Email', 'bit-integrations'), is_pro: true }, + { name: 'getCommentMetadata', label: __('Get Comment Metadata', 'bit-integrations'), is_pro: true }, + { name: 'getCommentMetadataByMetaKey', label: __('Get Comment Metadata By Meta Key', 'bit-integrations'), is_pro: true }, + { name: 'createNewComment', label: __('Create New Comment', 'bit-integrations'), is_pro: true }, + { name: 'replyToComment', label: __('Reply To Comment', 'bit-integrations'), is_pro: true }, + { name: 'deleteExistingComment', label: __('Delete Existing Comment', 'bit-integrations'), is_pro: true }, + // Post Types + { name: 'getAllPostTypes', label: __('Get All Post Types', 'bit-integrations'), is_pro: true }, + { name: 'getPostType', label: __('Get Post Type', 'bit-integrations'), is_pro: true }, + { name: 'registerPostType', label: __('Register Post Type', 'bit-integrations'), is_pro: true }, + { name: 'unregisterPostType', label: __('Unregister Post Type', 'bit-integrations'), is_pro: true }, + { name: 'addPostTypeFeatures', label: __('Add Post Type Features', 'bit-integrations'), is_pro: true }, + // Post Tags + { name: 'createPostTag', label: __('Create Post Tag', 'bit-integrations'), is_pro: true }, + { name: 'updatePostTag', label: __('Update Post Tag', 'bit-integrations'), is_pro: true }, + { name: 'deletePostTag', label: __('Delete Post Tag', 'bit-integrations'), is_pro: true }, + { name: 'getAllPostTags', label: __('Get All Post Tags', 'bit-integrations'), is_pro: true }, + { name: 'getPostTag', label: __('Get Post Tag', 'bit-integrations'), is_pro: true }, + { name: 'addTaxonomyToPost', label: __('Add Taxonomy To Post', 'bit-integrations'), is_pro: true }, + { name: 'removeTaxonomyFromPost', label: __('Remove Taxonomy From Post', 'bit-integrations'), is_pro: true }, + { name: 'addTagsToPost', label: __('Add Tags To Post', 'bit-integrations'), is_pro: true }, + { name: 'removeTagsFromPost', label: __('Remove Tags From Post', 'bit-integrations'), is_pro: true }, + // Media + { name: 'addNewImage', label: __('Add New Image', 'bit-integrations'), is_pro: true }, + { name: 'deleteMedia', label: __('Delete Media', 'bit-integrations'), is_pro: true }, + { name: 'renameMedia', label: __('Rename Media', 'bit-integrations'), is_pro: true }, + { name: 'getAllMedia', label: __('Get All Media', 'bit-integrations'), is_pro: true }, + { name: 'getMediaByTitle', label: __('Get Media By Title', 'bit-integrations'), is_pro: true }, + { name: 'getMediaById', label: __('Get Media By ID', 'bit-integrations'), is_pro: true }, + // Taxonomies + { name: 'getAllTaxonomies', label: __('Get All Taxonomies', 'bit-integrations'), is_pro: true }, + { name: 'getTaxonomy', label: __('Get Taxonomy', 'bit-integrations'), is_pro: true }, + { name: 'registerTaxonomy', label: __('Register Taxonomy', 'bit-integrations'), is_pro: true }, + { name: 'unregisterTaxonomy', label: __('Unregister Taxonomy', 'bit-integrations'), is_pro: true }, + // Terms + { name: 'getAllTerms', label: __('Get All Terms', 'bit-integrations'), is_pro: true }, + { name: 'getTerm', label: __('Get Term', 'bit-integrations'), is_pro: true }, + { name: 'getTermByField', label: __('Get Term By Field', 'bit-integrations'), is_pro: true }, + { name: 'getTermByTaxonomy', label: __('Get Term By Taxonomy', 'bit-integrations'), is_pro: true }, + { name: 'createNewTerm', label: __('Create New Term', 'bit-integrations'), is_pro: true }, + { name: 'updateTerm', label: __('Update Term', 'bit-integrations'), is_pro: true }, + { name: 'termDelete', label: __('Delete Term', 'bit-integrations'), is_pro: true }, + // Categories + { name: 'createCategory', label: __('Create Category', 'bit-integrations'), is_pro: true }, + { name: 'updateCategory', label: __('Update Category', 'bit-integrations'), is_pro: true }, + { name: 'deleteCategory', label: __('Delete Category', 'bit-integrations'), is_pro: true }, + { name: 'addCategoryToPost', label: __('Add Category To Post', 'bit-integrations'), is_pro: true }, + { name: 'getAllCategories', label: __('Get All Categories', 'bit-integrations'), is_pro: true }, + { name: 'getCategory', label: __('Get Category', 'bit-integrations'), is_pro: true }, + // WooCommerce Product Tags + { name: 'createProductTag', label: __('Create Product Tag', 'bit-integrations'), is_pro: true }, + { name: 'updateProductTag', label: __('Update Product Tag', 'bit-integrations'), is_pro: true }, + { name: 'deleteProductTag', label: __('Delete Product Tag', 'bit-integrations'), is_pro: true }, + { name: 'getAllProductTags', label: __('Get All Product Tags', 'bit-integrations'), is_pro: true }, + { name: 'getProductTag', label: __('Get Product Tag', 'bit-integrations'), is_pro: true }, + // WooCommerce Product Categories + { name: 'createProductCategory', label: __('Create Product Category', 'bit-integrations'), is_pro: true }, + { name: 'updateProductCategory', label: __('Update Product Category', 'bit-integrations'), is_pro: true }, + { name: 'deleteProductCategory', label: __('Delete Product Category', 'bit-integrations'), is_pro: true }, + { name: 'getAllProductCategories', label: __('Get All Product Categories', 'bit-integrations'), is_pro: true }, + { name: 'getProductCategory', label: __('Get Product Category', 'bit-integrations'), is_pro: true }, + // WooCommerce Product Types + { name: 'createProductType', label: __('Create Product Type', 'bit-integrations'), is_pro: true }, + { name: 'updateProductType', label: __('Update Product Type', 'bit-integrations'), is_pro: true }, + { name: 'deleteProductType', label: __('Delete Product Type', 'bit-integrations'), is_pro: true }, + { name: 'getAllProductTypes', label: __('Get All Product Types', 'bit-integrations'), is_pro: true }, + { name: 'getProductType', label: __('Get Product Type', 'bit-integrations'), is_pro: true }, + // Plugin Management + { name: 'checkPluginActivationStatus', label: __('Check Plugin Activation Status', 'bit-integrations'), is_pro: true }, + { name: 'activatePlugin', label: __('Activate Plugin', 'bit-integrations'), is_pro: true }, +] + +// === User Fields === +export const CreateUserFields = [ + { key: 'user_login', label: __('Username', 'bit-integrations'), required: true }, + { key: 'user_email', label: __('Email', 'bit-integrations'), required: true }, + { key: 'user_pass', label: __('Password', 'bit-integrations'), required: true }, + { key: 'display_name', label: __('Display Name', 'bit-integrations'), required: false }, + { key: 'first_name', label: __('First Name', 'bit-integrations'), required: false }, + { key: 'last_name', label: __('Last Name', 'bit-integrations'), required: false }, + { key: 'user_url', label: __('Website URL', 'bit-integrations'), required: false }, + { key: 'description', label: __('Description', 'bit-integrations'), required: false }, + { key: 'role', label: __('Role', 'bit-integrations'), required: false }, +] + +export const UpdateUserFields = [ + { key: 'user_id', label: __('User ID', 'bit-integrations'), required: true }, + { key: 'user_email', label: __('Email', 'bit-integrations'), required: false }, + { key: 'user_pass', label: __('Password', 'bit-integrations'), required: false }, + { key: 'display_name', label: __('Display Name', 'bit-integrations'), required: false }, + { key: 'first_name', label: __('First Name', 'bit-integrations'), required: false }, + { key: 'last_name', label: __('Last Name', 'bit-integrations'), required: false }, + { key: 'user_url', label: __('Website URL', 'bit-integrations'), required: false }, + { key: 'description', label: __('Description', 'bit-integrations'), required: false }, + { key: 'role', label: __('Role', 'bit-integrations'), required: false }, +] + +export const UserIdField = [ + { key: 'user_id', label: __('User ID', 'bit-integrations'), required: true }, +] + +export const UserEmailField = [ + { key: 'user_email', label: __('Email', 'bit-integrations'), required: true }, +] + +export const UserByFieldFields = [ + { key: 'field', label: __('Field Name (login/email/slug/id)', 'bit-integrations'), required: true }, + { key: 'value', label: __('Field Value', 'bit-integrations'), required: true }, +] + +export const UserRoleField = [ + { key: 'role', label: __('Role', 'bit-integrations'), required: true }, +] + +export const UserMetaFields = [ + { key: 'user_id', label: __('User ID', 'bit-integrations'), required: true }, + { key: 'meta_key', label: __('Meta Key', 'bit-integrations'), required: true }, +] + +export const UpdateUserMetaFields = [ + { key: 'user_id', label: __('User ID', 'bit-integrations'), required: true }, + { key: 'meta_key', label: __('Meta Key', 'bit-integrations'), required: true }, + { key: 'meta_value', label: __('Meta Value', 'bit-integrations'), required: true }, +] + +// === Role Fields === +export const CreateRoleFields = [ + { key: 'role_name', label: __('Role Name (slug)', 'bit-integrations'), required: true }, + { key: 'display_name', label: __('Display Name', 'bit-integrations'), required: true }, + { key: 'capabilities', label: __('Capabilities (comma separated)', 'bit-integrations'), required: false }, +] + +export const RoleNameField = [ + { key: 'role_name', label: __('Role Name', 'bit-integrations'), required: true }, +] + +export const UserRoleManageFields = [ + { key: 'user_id', label: __('User ID', 'bit-integrations'), required: true }, + { key: 'role', label: __('Role', 'bit-integrations'), required: true }, +] + +export const UpdateUserRoleFields = [ + { key: 'user_id', label: __('User ID', 'bit-integrations'), required: true }, + { key: 'old_role', label: __('Old Role', 'bit-integrations'), required: true }, + { key: 'new_role', label: __('New Role', 'bit-integrations'), required: true }, +] + +// === Capability Fields === +export const RoleCapabilitiesFields = [ + { key: 'role_name', label: __('Role Name', 'bit-integrations'), required: true }, + { key: 'capabilities', label: __('Capabilities (comma separated)', 'bit-integrations'), required: true }, +] + +export const UserCapabilitiesFields = [ + { key: 'user_id', label: __('User ID', 'bit-integrations'), required: true }, + { key: 'capabilities', label: __('Capabilities (comma separated)', 'bit-integrations'), required: true }, +] + +// === Post Fields === +export const CreatePostFields = [ + { key: 'post_title', label: __('Post Title', 'bit-integrations'), required: true }, + { key: 'post_content', label: __('Post Content', 'bit-integrations'), required: false }, + { key: 'post_status', label: __('Post Status', 'bit-integrations'), required: false }, + { key: 'post_type', label: __('Post Type', 'bit-integrations'), required: false }, + { key: 'post_author', label: __('Post Author ID', 'bit-integrations'), required: false }, + { key: 'post_date', label: __('Post Date', 'bit-integrations'), required: false }, + { key: 'post_name', label: __('Post Slug', 'bit-integrations'), required: false }, + { key: 'post_excerpt', label: __('Post Excerpt', 'bit-integrations'), required: false }, + { key: 'menu_order', label: __('Menu Order', 'bit-integrations'), required: false }, + { key: 'comment_status', label: __('Comment Status (open/closed)', 'bit-integrations'), required: false }, + { key: 'featured_image_url', label: __('Featured Image URL', 'bit-integrations'), required: false }, + { key: 'post_password', label: __('Post Password', 'bit-integrations'), required: false }, +] + +export const UpdatePostFields = [ + { key: 'post_id', label: __('Post ID', 'bit-integrations'), required: true }, + { key: 'post_title', label: __('Post Title', 'bit-integrations'), required: false }, + { key: 'post_content', label: __('Post Content', 'bit-integrations'), required: false }, + { key: 'post_status', label: __('Post Status', 'bit-integrations'), required: false }, + { key: 'post_type', label: __('Post Type', 'bit-integrations'), required: false }, + { key: 'post_author', label: __('Post Author ID', 'bit-integrations'), required: false }, + { key: 'post_date', label: __('Post Date', 'bit-integrations'), required: false }, + { key: 'post_name', label: __('Post Slug', 'bit-integrations'), required: false }, + { key: 'post_excerpt', label: __('Post Excerpt', 'bit-integrations'), required: false }, + { key: 'featured_image_url', label: __('Featured Image URL', 'bit-integrations'), required: false }, +] + +export const PostIdField = [ + { key: 'post_id', label: __('Post ID', 'bit-integrations'), required: true }, +] + +export const PostTypeField = [ + { key: 'post_type', label: __('Post Type', 'bit-integrations'), required: true }, +] + +export const PostsByMetaFields = [ + { key: 'meta_key', label: __('Meta Key', 'bit-integrations'), required: true }, + { key: 'meta_value', label: __('Meta Value', 'bit-integrations'), required: true }, +] + +export const PostMetaByKeyFields = [ + { key: 'post_id', label: __('Post ID', 'bit-integrations'), required: true }, + { key: 'meta_key', label: __('Meta Key', 'bit-integrations'), required: true }, +] + +export const UpdatePostStatusFields = [ + { key: 'post_id', label: __('Post ID', 'bit-integrations'), required: true }, + { key: 'post_status', label: __('Post Status', 'bit-integrations'), required: true }, +] + +// === Comment Fields === +export const CreateCommentFields = [ + { key: 'comment_post_ID', label: __('Post ID', 'bit-integrations'), required: true }, + { key: 'comment_content', label: __('Comment Content', 'bit-integrations'), required: true }, + { key: 'comment_author', label: __('Author Name', 'bit-integrations'), required: false }, + { key: 'comment_author_email', label: __('Author Email', 'bit-integrations'), required: false }, + { key: 'comment_author_url', label: __('Author URL', 'bit-integrations'), required: false }, + { key: 'comment_parent', label: __('Parent Comment ID', 'bit-integrations'), required: false }, +] + +export const ReplyCommentFields = [ + { key: 'comment_parent', label: __('Parent Comment ID', 'bit-integrations'), required: true }, + { key: 'comment_content', label: __('Comment Content', 'bit-integrations'), required: true }, + { key: 'comment_post_ID', label: __('Post ID', 'bit-integrations'), required: false }, + { key: 'comment_author', label: __('Author Name', 'bit-integrations'), required: false }, + { key: 'comment_author_email', label: __('Author Email', 'bit-integrations'), required: false }, +] + +export const CommentIdField = [ + { key: 'comment_id', label: __('Comment ID', 'bit-integrations'), required: true }, +] + +export const CommentMetaByKeyFields = [ + { key: 'comment_id', label: __('Comment ID', 'bit-integrations'), required: true }, + { key: 'meta_key', label: __('Meta Key', 'bit-integrations'), required: true }, +] + +// === Post Type Fields === +export const RegisterPostTypeFields = [ + { key: 'post_type', label: __('Post Type Slug', 'bit-integrations'), required: true }, + { key: 'label', label: __('Label', 'bit-integrations'), required: true }, + { key: 'description', label: __('Description', 'bit-integrations'), required: false }, + { key: 'supports', label: __('Supports (comma separated)', 'bit-integrations'), required: false }, +] + +export const PostTypeFeaturesFields = [ + { key: 'post_type', label: __('Post Type', 'bit-integrations'), required: true }, + { key: 'features', label: __('Features (comma separated)', 'bit-integrations'), required: true }, +] + +// === Tag / Taxonomy / Term Fields === +export const CreateTagFields = [ + { key: 'name', label: __('Tag Name', 'bit-integrations'), required: true }, + { key: 'slug', label: __('Slug', 'bit-integrations'), required: false }, + { key: 'description', label: __('Description', 'bit-integrations'), required: false }, +] + +export const UpdateTagFields = [ + { key: 'tag_id', label: __('Tag ID', 'bit-integrations'), required: true }, + { key: 'name', label: __('Tag Name', 'bit-integrations'), required: false }, + { key: 'slug', label: __('Slug', 'bit-integrations'), required: false }, + { key: 'description', label: __('Description', 'bit-integrations'), required: false }, +] + +export const TagIdField = [ + { key: 'tag_id', label: __('Tag ID', 'bit-integrations'), required: true }, +] + +export const TaxonomyToPostFields = [ + { key: 'post_id', label: __('Post ID', 'bit-integrations'), required: true }, + { key: 'taxonomy', label: __('Taxonomy', 'bit-integrations'), required: true }, + { key: 'term', label: __('Term (ID or slug)', 'bit-integrations'), required: true }, +] + +export const TagsToPostFields = [ + { key: 'post_id', label: __('Post ID', 'bit-integrations'), required: true }, + { key: 'tags', label: __('Tags (comma separated IDs/slugs)', 'bit-integrations'), required: true }, +] + +// === Media Fields === +export const AddImageFields = [ + { key: 'image_url', label: __('Image URL', 'bit-integrations'), required: true }, + { key: 'title', label: __('Title', 'bit-integrations'), required: false }, + { key: 'caption', label: __('Caption', 'bit-integrations'), required: false }, + { key: 'description', label: __('Description', 'bit-integrations'), required: false }, + { key: 'alt_text', label: __('Alt Text', 'bit-integrations'), required: false }, + { key: 'parent_post_id', label: __('Parent Post ID', 'bit-integrations'), required: false }, +] + +export const MediaIdField = [ + { key: 'media_id', label: __('Media ID', 'bit-integrations'), required: true }, +] + +export const RenameMediaFields = [ + { key: 'media_id', label: __('Media ID', 'bit-integrations'), required: true }, + { key: 'new_title', label: __('New Title', 'bit-integrations'), required: true }, +] + +export const MediaTitleField = [ + { key: 'title', label: __('Title', 'bit-integrations'), required: true }, +] + +// === Taxonomy Fields === +export const TaxonomyField = [ + { key: 'taxonomy', label: __('Taxonomy', 'bit-integrations'), required: true }, +] + +export const RegisterTaxonomyFields = [ + { key: 'taxonomy', label: __('Taxonomy Slug', 'bit-integrations'), required: true }, + { key: 'post_types', label: __('Post Types (comma separated)', 'bit-integrations'), required: true }, + { key: 'label', label: __('Label', 'bit-integrations'), required: true }, + { key: 'description', label: __('Description', 'bit-integrations'), required: false }, +] + +// === Term Fields === +export const TermIdTaxonomyFields = [ + { key: 'term_id', label: __('Term ID', 'bit-integrations'), required: true }, + { key: 'taxonomy', label: __('Taxonomy', 'bit-integrations'), required: true }, +] + +export const TermByFieldFields = [ + { key: 'field', label: __('Field (id/name/slug)', 'bit-integrations'), required: true }, + { key: 'value', label: __('Value', 'bit-integrations'), required: true }, + { key: 'taxonomy', label: __('Taxonomy', 'bit-integrations'), required: true }, +] + +export const CreateTermFields = [ + { key: 'name', label: __('Term Name', 'bit-integrations'), required: true }, + { key: 'taxonomy', label: __('Taxonomy', 'bit-integrations'), required: true }, + { key: 'slug', label: __('Slug', 'bit-integrations'), required: false }, + { key: 'description', label: __('Description', 'bit-integrations'), required: false }, + { key: 'parent', label: __('Parent Term ID', 'bit-integrations'), required: false }, +] + +export const UpdateTermFields = [ + { key: 'term_id', label: __('Term ID', 'bit-integrations'), required: true }, + { key: 'taxonomy', label: __('Taxonomy', 'bit-integrations'), required: true }, + { key: 'name', label: __('Term Name', 'bit-integrations'), required: false }, + { key: 'slug', label: __('Slug', 'bit-integrations'), required: false }, + { key: 'description', label: __('Description', 'bit-integrations'), required: false }, +] + +// === Category Fields === +export const CreateCategoryFields = [ + { key: 'name', label: __('Category Name', 'bit-integrations'), required: true }, + { key: 'slug', label: __('Slug', 'bit-integrations'), required: false }, + { key: 'description', label: __('Description', 'bit-integrations'), required: false }, + { key: 'parent', label: __('Parent Category ID', 'bit-integrations'), required: false }, +] + +export const UpdateCategoryFields = [ + { key: 'category_id', label: __('Category ID', 'bit-integrations'), required: true }, + { key: 'name', label: __('Category Name', 'bit-integrations'), required: false }, + { key: 'slug', label: __('Slug', 'bit-integrations'), required: false }, + { key: 'description', label: __('Description', 'bit-integrations'), required: false }, +] + +export const CategoryIdField = [ + { key: 'category_id', label: __('Category ID', 'bit-integrations'), required: true }, +] + +export const AddCategoryToPostFields = [ + { key: 'post_id', label: __('Post ID', 'bit-integrations'), required: true }, + { key: 'category_ids', label: __('Category IDs (comma separated)', 'bit-integrations'), required: true }, +] + +// === WooCommerce Tag/Category/Type Fields === +export const CreateProductTagFields = [ + { key: 'name', label: __('Tag Name', 'bit-integrations'), required: true }, + { key: 'slug', label: __('Slug', 'bit-integrations'), required: false }, + { key: 'description', label: __('Description', 'bit-integrations'), required: false }, +] + +export const UpdateProductTagFields = [ + { key: 'tag_id', label: __('Tag ID', 'bit-integrations'), required: true }, + { key: 'name', label: __('Tag Name', 'bit-integrations'), required: false }, + { key: 'slug', label: __('Slug', 'bit-integrations'), required: false }, + { key: 'description', label: __('Description', 'bit-integrations'), required: false }, +] + +export const CreateProductCategoryFields = [ + { key: 'name', label: __('Category Name', 'bit-integrations'), required: true }, + { key: 'slug', label: __('Slug', 'bit-integrations'), required: false }, + { key: 'description', label: __('Description', 'bit-integrations'), required: false }, + { key: 'parent', label: __('Parent Category ID', 'bit-integrations'), required: false }, +] + +export const UpdateProductCategoryFields = [ + { key: 'category_id', label: __('Category ID', 'bit-integrations'), required: true }, + { key: 'name', label: __('Category Name', 'bit-integrations'), required: false }, + { key: 'slug', label: __('Slug', 'bit-integrations'), required: false }, + { key: 'description', label: __('Description', 'bit-integrations'), required: false }, +] + +export const CreateProductTypeFields = [ + { key: 'name', label: __('Type Name', 'bit-integrations'), required: true }, + { key: 'slug', label: __('Slug', 'bit-integrations'), required: false }, +] + +export const UpdateProductTypeFields = [ + { key: 'type_id', label: __('Type ID', 'bit-integrations'), required: true }, + { key: 'name', label: __('Type Name', 'bit-integrations'), required: false }, + { key: 'slug', label: __('Slug', 'bit-integrations'), required: false }, +] + +export const ProductTypeIdField = [ + { key: 'type_id', label: __('Type ID', 'bit-integrations'), required: true }, +] + +// === Plugin Fields === +export const PluginPathField = [ + { key: 'plugin_path', label: __('Plugin Path (folder/file.php)', 'bit-integrations'), required: true }, +] + +export const EmptyFields = [] diff --git a/frontend/src/components/Flow/New/SelectAction.jsx b/frontend/src/components/Flow/New/SelectAction.jsx index 5110534f0..a6635efef 100644 --- a/frontend/src/components/Flow/New/SelectAction.jsx +++ b/frontend/src/components/Flow/New/SelectAction.jsx @@ -176,6 +176,7 @@ export default function SelectAction() { { type: 'MailerPress' }, { type: 'CreatorLms' }, { type: 'FluentCart' }, + { type: 'WordPress' }, { type: 'Ninja Tables' }, { type: 'WC Affiliate' }, { type: 'WPCafe' }, From 4cdcc44d2959b547e76251f3b34eaa751b3f49c7 Mon Sep 17 00:00:00 2001 From: Rishad Alam <101513331+RishadAlam@users.noreply.github.com> Date: Tue, 21 Apr 2026 13:38:01 +0600 Subject: [PATCH 02/10] refactor: wordpress action filtered --- backend/Actions/WordPress/RecordApiHelper.php | 260 +----------------- .../WordPress/WordPressCommonFunc.js | 222 ++++++++------- .../WordPress/WordPressIntegLayout.jsx | 4 +- .../AllIntegrations/WordPress/staticData.js | 240 ++++++++-------- .../src/resource/img/integ/wordPress.webp | Bin 0 -> 64366 bytes 5 files changed, 239 insertions(+), 487 deletions(-) create mode 100644 frontend/src/resource/img/integ/wordPress.webp diff --git a/backend/Actions/WordPress/RecordApiHelper.php b/backend/Actions/WordPress/RecordApiHelper.php index 7533d9c25..189b1cd55 100644 --- a/backend/Actions/WordPress/RecordApiHelper.php +++ b/backend/Actions/WordPress/RecordApiHelper.php @@ -33,6 +33,17 @@ public function execute($fieldValues, $fieldMap, $integrationDetails) ), ]; + if (strpos($mainAction, 'get') === 0) { + $response = [ + 'success' => false, + 'message' => __('Get data actions are no longer available in WordPress integration.', 'bit-integrations'), + ]; + + LogHandler::save($this->_integrationID, ['type' => 'WordPress', 'type_name' => $mainAction], 'error', $response); + + return $response; + } + switch ($mainAction) { // === User Management === case 'createNewUser': @@ -50,43 +61,7 @@ public function execute($fieldValues, $fieldMap, $integrationDetails) break; - // === User Retrieval === - case 'getAllUsers': - $response = Hooks::apply(Config::withPrefix('wordpress_getAllUsers'), $defaultResponse, $fieldData, $integrationDetails); - - break; - - case 'getAllUsersByRole': - $response = Hooks::apply(Config::withPrefix('wordpress_getAllUsersByRole'), $defaultResponse, $fieldData, $integrationDetails); - - break; - - case 'getUserById': - $response = Hooks::apply(Config::withPrefix('wordpress_getUserById'), $defaultResponse, $fieldData, $integrationDetails); - - break; - - case 'getUserByEmail': - $response = Hooks::apply(Config::withPrefix('wordpress_getUserByEmail'), $defaultResponse, $fieldData, $integrationDetails); - - break; - - case 'getUserByField': - $response = Hooks::apply(Config::withPrefix('wordpress_getUserByField'), $defaultResponse, $fieldData, $integrationDetails); - - break; - // === User Metadata === - case 'getUserMetadata': - $response = Hooks::apply(Config::withPrefix('wordpress_getUserMetadata'), $defaultResponse, $fieldData, $integrationDetails); - - break; - - case 'getUserMetadataByMetaKey': - $response = Hooks::apply(Config::withPrefix('wordpress_getUserMetadataByMetaKey'), $defaultResponse, $fieldData, $integrationDetails); - - break; - case 'updateUserMetadata': $response = Hooks::apply(Config::withPrefix('wordpress_updateUserMetadata'), $defaultResponse, $fieldData, $integrationDetails); @@ -102,12 +77,6 @@ public function execute($fieldValues, $fieldMap, $integrationDetails) $response = Hooks::apply(Config::withPrefix('wordpress_deleteRole'), $defaultResponse, $fieldData, $integrationDetails); break; - - case 'getAllRoles': - $response = Hooks::apply(Config::withPrefix('wordpress_getAllRoles'), $defaultResponse, $fieldData, $integrationDetails); - - break; - case 'addUserRoles': $response = Hooks::apply(Config::withPrefix('wordpress_addUserRoles'), $defaultResponse, $fieldData, $integrationDetails); @@ -124,16 +93,6 @@ public function execute($fieldValues, $fieldMap, $integrationDetails) break; // === Capabilities === - case 'getAllCapabilities': - $response = Hooks::apply(Config::withPrefix('wordpress_getAllCapabilities'), $defaultResponse, $fieldData, $integrationDetails); - - break; - - case 'getRoleCapabilities': - $response = Hooks::apply(Config::withPrefix('wordpress_getRoleCapabilities'), $defaultResponse, $fieldData, $integrationDetails); - - break; - case 'addRoleCapabilities': $response = Hooks::apply(Config::withPrefix('wordpress_addRoleCapabilities'), $defaultResponse, $fieldData, $integrationDetails); @@ -143,12 +102,6 @@ public function execute($fieldValues, $fieldMap, $integrationDetails) $response = Hooks::apply(Config::withPrefix('wordpress_removeRoleCapabilities'), $defaultResponse, $fieldData, $integrationDetails); break; - - case 'getUserCapabilities': - $response = Hooks::apply(Config::withPrefix('wordpress_getUserCapabilities'), $defaultResponse, $fieldData, $integrationDetails); - - break; - case 'addUserCapabilities': $response = Hooks::apply(Config::withPrefix('wordpress_addUserCapabilities'), $defaultResponse, $fieldData, $integrationDetails); @@ -160,56 +113,6 @@ public function execute($fieldValues, $fieldMap, $integrationDetails) break; // === Post Management === - case 'getAllPosts': - $response = Hooks::apply(Config::withPrefix('wordpress_getAllPosts'), $defaultResponse, $fieldData, $integrationDetails); - - break; - - case 'getPostById': - $response = Hooks::apply(Config::withPrefix('wordpress_getPostById'), $defaultResponse, $fieldData, $integrationDetails); - - break; - - case 'getPostsByPostType': - $response = Hooks::apply(Config::withPrefix('wordpress_getPostsByPostType'), $defaultResponse, $fieldData, $integrationDetails); - - break; - - case 'getPostsByMetadata': - $response = Hooks::apply(Config::withPrefix('wordpress_getPostsByMetadata'), $defaultResponse, $fieldData, $integrationDetails); - - break; - - case 'getPostMetadata': - $response = Hooks::apply(Config::withPrefix('wordpress_getPostMetadata'), $defaultResponse, $fieldData, $integrationDetails); - - break; - - case 'getPostMetadataByMetaKey': - $response = Hooks::apply(Config::withPrefix('wordpress_getPostMetadataByMetaKey'), $defaultResponse, $fieldData, $integrationDetails); - - break; - - case 'getPostPermalink': - $response = Hooks::apply(Config::withPrefix('wordpress_getPostPermalink'), $defaultResponse, $fieldData, $integrationDetails); - - break; - - case 'getPostContent': - $response = Hooks::apply(Config::withPrefix('wordpress_getPostContent'), $defaultResponse, $fieldData, $integrationDetails); - - break; - - case 'getPostExcerpt': - $response = Hooks::apply(Config::withPrefix('wordpress_getPostExcerpt'), $defaultResponse, $fieldData, $integrationDetails); - - break; - - case 'getPostStatus': - $response = Hooks::apply(Config::withPrefix('wordpress_getPostStatus'), $defaultResponse, $fieldData, $integrationDetails); - - break; - case 'createNewPost': $response = Hooks::apply(Config::withPrefix('wordpress_createNewPost'), $defaultResponse, $fieldData, $integrationDetails); @@ -231,36 +134,6 @@ public function execute($fieldValues, $fieldMap, $integrationDetails) break; // === Comments === - case 'getAllPostComments': - $response = Hooks::apply(Config::withPrefix('wordpress_getAllPostComments'), $defaultResponse, $fieldData, $integrationDetails); - - break; - - case 'getPostComments': - $response = Hooks::apply(Config::withPrefix('wordpress_getPostComments'), $defaultResponse, $fieldData, $integrationDetails); - - break; - - case 'getUserComments': - $response = Hooks::apply(Config::withPrefix('wordpress_getUserComments'), $defaultResponse, $fieldData, $integrationDetails); - - break; - - case 'getUserCommentsByEmail': - $response = Hooks::apply(Config::withPrefix('wordpress_getUserCommentsByEmail'), $defaultResponse, $fieldData, $integrationDetails); - - break; - - case 'getCommentMetadata': - $response = Hooks::apply(Config::withPrefix('wordpress_getCommentMetadata'), $defaultResponse, $fieldData, $integrationDetails); - - break; - - case 'getCommentMetadataByMetaKey': - $response = Hooks::apply(Config::withPrefix('wordpress_getCommentMetadataByMetaKey'), $defaultResponse, $fieldData, $integrationDetails); - - break; - case 'createNewComment': $response = Hooks::apply(Config::withPrefix('wordpress_createNewComment'), $defaultResponse, $fieldData, $integrationDetails); @@ -277,16 +150,6 @@ public function execute($fieldValues, $fieldMap, $integrationDetails) break; // === Post Types === - case 'getAllPostTypes': - $response = Hooks::apply(Config::withPrefix('wordpress_getAllPostTypes'), $defaultResponse, $fieldData, $integrationDetails); - - break; - - case 'getPostType': - $response = Hooks::apply(Config::withPrefix('wordpress_getPostType'), $defaultResponse, $fieldData, $integrationDetails); - - break; - case 'registerPostType': $response = Hooks::apply(Config::withPrefix('wordpress_registerPostType'), $defaultResponse, $fieldData, $integrationDetails); @@ -317,17 +180,6 @@ public function execute($fieldValues, $fieldMap, $integrationDetails) $response = Hooks::apply(Config::withPrefix('wordpress_deletePostTag'), $defaultResponse, $fieldData, $integrationDetails); break; - - case 'getAllPostTags': - $response = Hooks::apply(Config::withPrefix('wordpress_getAllPostTags'), $defaultResponse, $fieldData, $integrationDetails); - - break; - - case 'getPostTag': - $response = Hooks::apply(Config::withPrefix('wordpress_getPostTag'), $defaultResponse, $fieldData, $integrationDetails); - - break; - case 'addTaxonomyToPost': $response = Hooks::apply(Config::withPrefix('wordpress_addTaxonomyToPost'), $defaultResponse, $fieldData, $integrationDetails); @@ -363,33 +215,7 @@ public function execute($fieldValues, $fieldMap, $integrationDetails) $response = Hooks::apply(Config::withPrefix('wordpress_renameMedia'), $defaultResponse, $fieldData, $integrationDetails); break; - - case 'getAllMedia': - $response = Hooks::apply(Config::withPrefix('wordpress_getAllMedia'), $defaultResponse, $fieldData, $integrationDetails); - - break; - - case 'getMediaByTitle': - $response = Hooks::apply(Config::withPrefix('wordpress_getMediaByTitle'), $defaultResponse, $fieldData, $integrationDetails); - - break; - - case 'getMediaById': - $response = Hooks::apply(Config::withPrefix('wordpress_getMediaById'), $defaultResponse, $fieldData, $integrationDetails); - - break; - // === Taxonomies === - case 'getAllTaxonomies': - $response = Hooks::apply(Config::withPrefix('wordpress_getAllTaxonomies'), $defaultResponse, $fieldData, $integrationDetails); - - break; - - case 'getTaxonomy': - $response = Hooks::apply(Config::withPrefix('wordpress_getTaxonomy'), $defaultResponse, $fieldData, $integrationDetails); - - break; - case 'registerTaxonomy': $response = Hooks::apply(Config::withPrefix('wordpress_registerTaxonomy'), $defaultResponse, $fieldData, $integrationDetails); @@ -401,26 +227,6 @@ public function execute($fieldValues, $fieldMap, $integrationDetails) break; // === Terms === - case 'getAllTerms': - $response = Hooks::apply(Config::withPrefix('wordpress_getAllTerms'), $defaultResponse, $fieldData, $integrationDetails); - - break; - - case 'getTerm': - $response = Hooks::apply(Config::withPrefix('wordpress_getTerm'), $defaultResponse, $fieldData, $integrationDetails); - - break; - - case 'getTermByField': - $response = Hooks::apply(Config::withPrefix('wordpress_getTermByField'), $defaultResponse, $fieldData, $integrationDetails); - - break; - - case 'getTermByTaxonomy': - $response = Hooks::apply(Config::withPrefix('wordpress_getTermByTaxonomy'), $defaultResponse, $fieldData, $integrationDetails); - - break; - case 'createNewTerm': $response = Hooks::apply(Config::withPrefix('wordpress_createNewTerm'), $defaultResponse, $fieldData, $integrationDetails); @@ -456,17 +262,6 @@ public function execute($fieldValues, $fieldMap, $integrationDetails) $response = Hooks::apply(Config::withPrefix('wordpress_addCategoryToPost'), $defaultResponse, $fieldData, $integrationDetails); break; - - case 'getAllCategories': - $response = Hooks::apply(Config::withPrefix('wordpress_getAllCategories'), $defaultResponse, $fieldData, $integrationDetails); - - break; - - case 'getCategory': - $response = Hooks::apply(Config::withPrefix('wordpress_getCategory'), $defaultResponse, $fieldData, $integrationDetails); - - break; - // === Product Tags (WooCommerce) === case 'createProductTag': $response = Hooks::apply(Config::withPrefix('wordpress_createProductTag'), $defaultResponse, $fieldData, $integrationDetails); @@ -482,17 +277,6 @@ public function execute($fieldValues, $fieldMap, $integrationDetails) $response = Hooks::apply(Config::withPrefix('wordpress_deleteProductTag'), $defaultResponse, $fieldData, $integrationDetails); break; - - case 'getAllProductTags': - $response = Hooks::apply(Config::withPrefix('wordpress_getAllProductTags'), $defaultResponse, $fieldData, $integrationDetails); - - break; - - case 'getProductTag': - $response = Hooks::apply(Config::withPrefix('wordpress_getProductTag'), $defaultResponse, $fieldData, $integrationDetails); - - break; - // === Product Categories (WooCommerce) === case 'createProductCategory': $response = Hooks::apply(Config::withPrefix('wordpress_createProductCategory'), $defaultResponse, $fieldData, $integrationDetails); @@ -508,17 +292,6 @@ public function execute($fieldValues, $fieldMap, $integrationDetails) $response = Hooks::apply(Config::withPrefix('wordpress_deleteProductCategory'), $defaultResponse, $fieldData, $integrationDetails); break; - - case 'getAllProductCategories': - $response = Hooks::apply(Config::withPrefix('wordpress_getAllProductCategories'), $defaultResponse, $fieldData, $integrationDetails); - - break; - - case 'getProductCategory': - $response = Hooks::apply(Config::withPrefix('wordpress_getProductCategory'), $defaultResponse, $fieldData, $integrationDetails); - - break; - // === Product Types (WooCommerce) === case 'createProductType': $response = Hooks::apply(Config::withPrefix('wordpress_createProductType'), $defaultResponse, $fieldData, $integrationDetails); @@ -534,17 +307,6 @@ public function execute($fieldValues, $fieldMap, $integrationDetails) $response = Hooks::apply(Config::withPrefix('wordpress_deleteProductType'), $defaultResponse, $fieldData, $integrationDetails); break; - - case 'getAllProductTypes': - $response = Hooks::apply(Config::withPrefix('wordpress_getAllProductTypes'), $defaultResponse, $fieldData, $integrationDetails); - - break; - - case 'getProductType': - $response = Hooks::apply(Config::withPrefix('wordpress_getProductType'), $defaultResponse, $fieldData, $integrationDetails); - - break; - // === Plugin Management === case 'checkPluginActivationStatus': $response = Hooks::apply(Config::withPrefix('wordpress_checkPluginActivationStatus'), $defaultResponse, $fieldData, $integrationDetails); diff --git a/frontend/src/components/AllIntegrations/WordPress/WordPressCommonFunc.js b/frontend/src/components/AllIntegrations/WordPress/WordPressCommonFunc.js index d8723ad33..e38d9690b 100644 --- a/frontend/src/components/AllIntegrations/WordPress/WordPressCommonFunc.js +++ b/frontend/src/components/AllIntegrations/WordPress/WordPressCommonFunc.js @@ -7,7 +7,6 @@ import { AddImageFields, CategoryIdField, CommentIdField, - CommentMetaByKeyFields, CreateCategoryFields, CreateCommentFields, CreatePostFields, @@ -20,11 +19,8 @@ import { CreateUserFields, EmptyFields, MediaIdField, - MediaTitleField, PluginPathField, PostIdField, - PostMetaByKeyFields, - PostsByMetaFields, PostTypeFeaturesFields, PostTypeField, ProductTypeIdField, @@ -38,7 +34,6 @@ import { TagsToPostFields, TaxonomyField, TaxonomyToPostFields, - TermByFieldFields, TermIdTaxonomyFields, UpdateCategoryFields, UpdatePostFields, @@ -51,13 +46,9 @@ import { UpdateUserFields, UpdateUserMetaFields, UpdateUserRoleFields, - UserByFieldFields, UserCapabilitiesFields, - UserEmailField, UserIdField, - UserMetaFields, - UserRoleField, - UserRoleManageFields, + UserRoleManageFields } from './staticData' export const handleInput = (e, wordPressConf, setWordPressConf) => { @@ -72,124 +63,129 @@ export const handleInput = (e, wordPressConf, setWordPressConf) => { export const getFieldsForAction = action => { switch (action) { // User Management - case 'createNewUser': return CreateUserFields - case 'updateUser': return UpdateUserFields - case 'deleteExistingUser': return UserIdField - // User Retrieval - case 'getAllUsers': return EmptyFields - case 'getAllUsersByRole': return UserRoleField - case 'getUserById': return UserIdField - case 'getUserByEmail': return UserEmailField - case 'getUserByField': return UserByFieldFields + case 'createNewUser': + return CreateUserFields + case 'updateUser': + return UpdateUserFields + case 'deleteExistingUser': + return UserIdField // User Metadata - case 'getUserMetadata': return UserIdField - case 'getUserMetadataByMetaKey': return UserMetaFields - case 'updateUserMetadata': return UpdateUserMetaFields + case 'updateUserMetadata': + return UpdateUserMetaFields // Role Management - case 'createRole': return CreateRoleFields - case 'deleteRole': return RoleNameField - case 'getAllRoles': return EmptyFields - case 'addUserRoles': return UserRoleManageFields - case 'removeUserRole': return UserRoleManageFields - case 'updateUserRole': return UpdateUserRoleFields + case 'createRole': + return CreateRoleFields + case 'deleteRole': + return RoleNameField + case 'addUserRoles': + return UserRoleManageFields + case 'removeUserRole': + return UserRoleManageFields + case 'updateUserRole': + return UpdateUserRoleFields // Capabilities - case 'getAllCapabilities': return EmptyFields - case 'getRoleCapabilities': return RoleNameField - case 'addRoleCapabilities': return RoleCapabilitiesFields - case 'removeRoleCapabilities': return RoleCapabilitiesFields - case 'getUserCapabilities': return UserIdField - case 'addUserCapabilities': return UserCapabilitiesFields - case 'removeUserCapabilities': return UserCapabilitiesFields + case 'addRoleCapabilities': + return RoleCapabilitiesFields + case 'removeRoleCapabilities': + return RoleCapabilitiesFields + case 'addUserCapabilities': + return UserCapabilitiesFields + case 'removeUserCapabilities': + return UserCapabilitiesFields // Post Management - case 'getAllPosts': return EmptyFields - case 'getPostById': return PostIdField - case 'getPostsByPostType': return PostTypeField - case 'getPostsByMetadata': return PostsByMetaFields - case 'getPostMetadata': return PostIdField - case 'getPostMetadataByMetaKey': return PostMetaByKeyFields - case 'getPostPermalink': return PostIdField - case 'getPostContent': return PostIdField - case 'getPostExcerpt': return PostIdField - case 'getPostStatus': return PostIdField - case 'createNewPost': return CreatePostFields - case 'updateExistingPost': return UpdatePostFields - case 'updatePostStatus': return UpdatePostStatusFields - case 'deleteExistingPost': return PostIdField + case 'createNewPost': + return CreatePostFields + case 'updateExistingPost': + return UpdatePostFields + case 'updatePostStatus': + return UpdatePostStatusFields + case 'deleteExistingPost': + return PostIdField // Comments - case 'getAllPostComments': return EmptyFields - case 'getPostComments': return PostIdField - case 'getUserComments': return UserIdField - case 'getUserCommentsByEmail': return UserEmailField - case 'getCommentMetadata': return CommentIdField - case 'getCommentMetadataByMetaKey': return CommentMetaByKeyFields - case 'createNewComment': return CreateCommentFields - case 'replyToComment': return ReplyCommentFields - case 'deleteExistingComment': return CommentIdField + case 'createNewComment': + return CreateCommentFields + case 'replyToComment': + return ReplyCommentFields + case 'deleteExistingComment': + return CommentIdField // Post Types - case 'getAllPostTypes': return EmptyFields - case 'getPostType': return PostTypeField - case 'registerPostType': return RegisterPostTypeFields - case 'unregisterPostType': return PostTypeField - case 'addPostTypeFeatures': return PostTypeFeaturesFields + case 'registerPostType': + return RegisterPostTypeFields + case 'unregisterPostType': + return PostTypeField + case 'addPostTypeFeatures': + return PostTypeFeaturesFields // Post Tags - case 'createPostTag': return CreateTagFields - case 'updatePostTag': return UpdateTagFields - case 'deletePostTag': return TagIdField - case 'getAllPostTags': return EmptyFields - case 'getPostTag': return TagIdField - case 'addTaxonomyToPost': return TaxonomyToPostFields - case 'removeTaxonomyFromPost': return TaxonomyToPostFields - case 'addTagsToPost': return TagsToPostFields - case 'removeTagsFromPost': return TagsToPostFields + case 'createPostTag': + return CreateTagFields + case 'updatePostTag': + return UpdateTagFields + case 'deletePostTag': + return TagIdField + case 'addTaxonomyToPost': + return TaxonomyToPostFields + case 'removeTaxonomyFromPost': + return TaxonomyToPostFields + case 'addTagsToPost': + return TagsToPostFields + case 'removeTagsFromPost': + return TagsToPostFields // Media - case 'addNewImage': return AddImageFields - case 'deleteMedia': return MediaIdField - case 'renameMedia': return RenameMediaFields - case 'getAllMedia': return EmptyFields - case 'getMediaByTitle': return MediaTitleField - case 'getMediaById': return MediaIdField + case 'addNewImage': + return AddImageFields + case 'deleteMedia': + return MediaIdField + case 'renameMedia': + return RenameMediaFields // Taxonomies - case 'getAllTaxonomies': return EmptyFields - case 'getTaxonomy': return TaxonomyField - case 'registerTaxonomy': return RegisterTaxonomyFields - case 'unregisterTaxonomy': return TaxonomyField + case 'registerTaxonomy': + return RegisterTaxonomyFields + case 'unregisterTaxonomy': + return TaxonomyField // Terms - case 'getAllTerms': return TaxonomyField - case 'getTerm': return TermIdTaxonomyFields - case 'getTermByField': return TermByFieldFields - case 'getTermByTaxonomy': return TaxonomyField - case 'createNewTerm': return CreateTermFields - case 'updateTerm': return UpdateTermFields - case 'termDelete': return TermIdTaxonomyFields + case 'createNewTerm': + return CreateTermFields + case 'updateTerm': + return UpdateTermFields + case 'termDelete': + return TermIdTaxonomyFields // Categories - case 'createCategory': return CreateCategoryFields - case 'updateCategory': return UpdateCategoryFields - case 'deleteCategory': return CategoryIdField - case 'addCategoryToPost': return AddCategoryToPostFields - case 'getAllCategories': return EmptyFields - case 'getCategory': return CategoryIdField + case 'createCategory': + return CreateCategoryFields + case 'updateCategory': + return UpdateCategoryFields + case 'deleteCategory': + return CategoryIdField + case 'addCategoryToPost': + return AddCategoryToPostFields // WooCommerce Product Tags - case 'createProductTag': return CreateProductTagFields - case 'updateProductTag': return UpdateProductTagFields - case 'deleteProductTag': return TagIdField - case 'getAllProductTags': return EmptyFields - case 'getProductTag': return TagIdField + case 'createProductTag': + return CreateProductTagFields + case 'updateProductTag': + return UpdateProductTagFields + case 'deleteProductTag': + return TagIdField // WooCommerce Product Categories - case 'createProductCategory': return CreateProductCategoryFields - case 'updateProductCategory': return UpdateProductCategoryFields - case 'deleteProductCategory': return CategoryIdField - case 'getAllProductCategories': return EmptyFields - case 'getProductCategory': return CategoryIdField + case 'createProductCategory': + return CreateProductCategoryFields + case 'updateProductCategory': + return UpdateProductCategoryFields + case 'deleteProductCategory': + return CategoryIdField // WooCommerce Product Types - case 'createProductType': return CreateProductTypeFields - case 'updateProductType': return UpdateProductTypeFields - case 'deleteProductType': return ProductTypeIdField - case 'getAllProductTypes': return EmptyFields - case 'getProductType': return ProductTypeIdField + case 'createProductType': + return CreateProductTypeFields + case 'updateProductType': + return UpdateProductTypeFields + case 'deleteProductType': + return ProductTypeIdField // Plugin - case 'checkPluginActivationStatus': return PluginPathField - case 'activatePlugin': return PluginPathField - default: return EmptyFields + case 'checkPluginActivationStatus': + return PluginPathField + case 'activatePlugin': + return PluginPathField + default: + return EmptyFields } } diff --git a/frontend/src/components/AllIntegrations/WordPress/WordPressIntegLayout.jsx b/frontend/src/components/AllIntegrations/WordPress/WordPressIntegLayout.jsx index 3f4e5f47e..dc9deb954 100644 --- a/frontend/src/components/AllIntegrations/WordPress/WordPressIntegLayout.jsx +++ b/frontend/src/components/AllIntegrations/WordPress/WordPressIntegLayout.jsx @@ -83,7 +83,9 @@ export default function WordPressIntegLayout({
-
+ ))} + -
- {__('Post Categories', 'bit-integrations')} - -
- {__('Select one or multiple categories for the post', 'bit-integrations')} -
+ {isLegacyAction && ( + <> +
+ {__('Post Type', 'bit-integrations')} + +
+ {__( + 'Select one of the defined WordPress post types Or custom post types for the post', + 'bit-integrations' + )} +
+
+
+
+
+ +
- -
-
- handleInput('post_categories', val)} - /> - -
-
- {__('Post Status', 'bit-integrations')} - -
- {__( - 'Select the status for the post. If published status is selected and the post date is in the future, it will automatically be changed to scheduled', - 'bit-integrations' - )} -
+
+ {__('Post Categories', 'bit-integrations')} + +
+ {__('Select one or multiple categories for the post', 'bit-integrations')} +
+
+
+
+
+ handleInput('post_categories', val)} + /> +
- -
- -
- {__('Author', 'bit-integrations')} - -
- {('Select the user to be assigned to the post', 'bit-integrations')} -
+
+ {__('Post Status', 'bit-integrations')} + +
+ {__( + 'Select the status for the post. If published status is selected and the post date is in the future, it will automatically be changed to scheduled', + 'bit-integrations' + )} +
+
+
- -
-
- handleInput(e.target.name, e.target.value)} + className="btcd-paper-inp w-5 mt-2"> + - ))} - -
- -
- {__('Comment Status', 'bit-integrations')} -
- + + + + + + + +
+ {__('Author', 'bit-integrations')} + +
+ {__('Select the user to be assigned to the post', 'bit-integrations')} +
+
+
+
+
+ +
-
- - - - - -
- {__('Use commas to separate multiple tags. Example: tag1, tag2, tag3', 'bit-integrations')} -
+
+ {__('Comment Status', 'bit-integrations')} +
+ + +
+ + + + + +
+ {__( + 'Use commas to separate multiple tags. Example: tag1, tag2, tag3', + 'bit-integrations' + )} +
+
+
- -
- handleInput(e.target.name, e.target.value)} - name="post_tags" - value={postConf.post_tags} - type="text" - placeholder={__('Add Post Tags...', 'bit-integrations')} - disabled={!isPro} - /> + handleInput(e.target.name, e.target.value)} + name="post_tags" + value={postConf.post_tags} + type="text" + placeholder={__('Add Post Tags...', 'bit-integrations')} + disabled={!isPro} + /> + + )}
@@ -368,13 +409,13 @@ const btcbi = useRecoilValue($appConfigState) formFields={formFields} postConf={postConf} setPostConf={setPostConf} - customFields={postFields} + customFields={selectedPostFields} /> ))}
-
- handleInput(e, postConf, setPostConf, formID, setIsLoading, setSnackbar)} - postConf={postConf} - setPostConf={setPostConf} - isLoading={isLoading} - setIsLoading={setIsLoading} - setSnackbar={setSnackbar} - acfFields={acf} - mbFields={mb} - jeCPTFields={jeCPTMeta} - /> - -
+ {isLegacyAction && ( +
+ handleInput(e, postConf, setPostConf, formID, setIsLoading, setSnackbar)} + postConf={postConf} + setPostConf={setPostConf} + isLoading={isLoading} + setIsLoading={setIsLoading} + setSnackbar={setSnackbar} + acfFields={acf} + mbFields={mb} + jeCPTFields={jeCPTMeta} + /> + + +
+ )} { const tmpData = { ...postConf } tmpData[typ] = val @@ -66,15 +68,22 @@ function Post({ allIntegURL }) { setPostTypes(data) }) - refreshPostCategories(postConf?.post_type, setPostCategories) + if (!tmpData.action_type) { + tmpData.action_type = 'createNewPost' + } + if (!tmpData?.post_map?.[0]?.postField) { + tmpData.post_map = generatePostCreationFieldMap(tmpData.action_type) + } + + refreshPostCategories(tmpData?.post_type, setPostCategories) - bitsFetch({ post_type: postConf?.post_type }, 'customfield/list').then(res => { + bitsFetch({ post_type: tmpData?.post_type }, 'customfield/list').then(res => { const { data } = res setAcf({ fields: data.acf_fields, files: data.acf_files }) setMb({ fields: data.mb_fields, files: data.mb_files }) setJeCPTMeta({ fields: data.je_cpt_fields, files: data.je_cpt_files }) }) - // setLoad(false) + setPostConf(tmpData) }, []) @@ -114,23 +123,34 @@ function Post({ allIntegURL }) { } }) setPostConf(tmpData) - // setLoad(false) } + const setActionType = actionType => { + const nextAction = actionType || 'createNewPost' + setPostConf(prevConf => ({ + ...prevConf, + action_type: nextAction, + post_map: generatePostCreationFieldMap(nextAction) + })) + } + + const isLegacyAction = isLegacyPostCreationAction(postConf?.action_type) + const selectedPostFields = getPostCreationFieldsByAction(postConf?.action_type || 'createNewPost') + const saveConfig = () => { if (!checkMappedPostFields(postConf)) { setSnackbar({ show: true, msg: __('Please map mandatory fields', 'bit-integrations') }) return } - if (!checkMappedAcfFields(postConf)) { + if (isLegacyAction && !checkMappedAcfFields(postConf)) { setSnackbar({ show: true, msg: __('Please map mandatory fields', 'bit-integrations') }) return } - if (!checkMappedMbFields(postConf)) { + if (isLegacyAction && !checkMappedMbFields(postConf)) { setSnackbar({ show: true, msg: __('Please map mandatory fields', 'bit-integrations') }) return } - if (!checkMappedJEFields(postConf)) { + if (isLegacyAction && !checkMappedJEFields(postConf)) { setSnackbar({ show: true, msg: __('Please map mandatory fields', 'bit-integrations') }) return } @@ -139,7 +159,6 @@ function Post({ allIntegURL }) { resp.then(res => { if (res.success) { setSnackbar({ show: true, msg: res.data }) - // navigate(allIntegURL) } else { setSnackbar({ show: true, msg: res.data || res }) } @@ -165,162 +184,184 @@ function Post({ allIntegURL }) {
-
- {__('Post Type', 'bit-integrations')} - -
- {__( - 'Select one of the defined WordPress post types Or custom post types for the post', - 'bit-integrations' - )} -
-
-
+
+ {__('Action Type', 'bit-integrations')}
-
- setActionType(e.target.value)}> + + {postCreationExtraActions.map(action => ( + - {postTypes?.map((postType, key) => ( - - ))} - - -
+ ))} + -
- {__('Post Categories', 'bit-integrations')} - -
- {__('Select one or multiple categories for the post', 'bit-integrations')} -
+ {isLegacyAction && ( + <> +
+ {__('Post Type', 'bit-integrations')} + +
+ {__( + 'Select one of the defined WordPress post types Or custom post types for the post', + 'bit-integrations' + )} +
+
+
+
+
+ +
- -
-
- ({ - label: category?.label, - value: category?.value?.toString() - }))} - onChange={val => handleInput('post_categories', val)} - /> - -
-
- {__('Post Status', 'bit-integrations')} - -
- {__( - 'Select the status for the post. If published status is selected and the post date is in the future, it will automatically be changed to scheduled', - 'bit-integrations' - )} -
+
+ {__('Post Categories', 'bit-integrations')} + +
+ {__('Select one or multiple categories for the post', 'bit-integrations')} +
+
+
+
+
+ ({ + label: category?.label, + value: category?.value?.toString() + }))} + onChange={val => handleInput('post_categories', val)} + /> +
- -
- -
- {__('Author', 'bit-integrations')} - -
- {__('Select the user to be assigned to the post', 'bit-integrations')} -
+
+ {__('Post Status', 'bit-integrations')} + +
+ {__( + 'Select the status for the post. If published status is selected and the post date is in the future, it will automatically be changed to scheduled', + 'bit-integrations' + )} +
+
+
- -
-
- handleInput(e.target.name, e.target.value)} + className="btcd-paper-inp w-5 mt-2"> + - ))} - -
+ + + + + + -
- {__('Comment Status', 'bit-integrations')} -
- +
+ {__('Author', 'bit-integrations')} + +
+ {__('Select the user to be assigned to the post', 'bit-integrations')} +
+
+
+
+
+ +
-
- - - +
+ {__('Comment Status', 'bit-integrations')} +
+ + +
+ + + - -
- {__('Use commas to separate multiple tags. Example: tag1, tag2, tag3', 'bit-integrations')} -
+ +
+ {__( + 'Use commas to separate multiple tags. Example: tag1, tag2, tag3', + 'bit-integrations' + )} +
+
+
-
-
- handleInput(e.target.name, e.target.value)} - name="post_tags" - value={postConf.post_tags} - type="text" - placeholder={__('Add Post Tags...', 'bit-integrations')} - disabled={!isPro} - /> + handleInput(e.target.name, e.target.value)} + name="post_tags" + value={postConf.post_tags} + type="text" + placeholder={__('Add Post Tags...', 'bit-integrations')} + disabled={!isPro} + /> + + )}
@@ -346,34 +387,38 @@ function Post({ allIntegURL }) { formFields={formFields} postConf={postConf} setPostConf={setPostConf} - customFields={postFields} + customFields={selectedPostFields} /> ))}
-
- handleInput(e, postConf, setPostConf, formID, setIsLoading, setSnackbar)} - postConf={postConf} - setPostConf={setPostConf} - isLoading={isLoading} - setIsLoading={setIsLoading} - setSnackbar={setSnackbar} - acfFields={acf} - mbFields={mb} - jeCPTFields={jeCPTMeta} - /> -
+ + {isLegacyAction && ( +
+ handleInput(e, postConf, setPostConf, formID, setIsLoading, setSnackbar)} + postConf={postConf} + setPostConf={setPostConf} + isLoading={isLoading} + setIsLoading={setIsLoading} + setSnackbar={setSnackbar} + acfFields={acf} + mbFields={mb} + jeCPTFields={jeCPTMeta} + /> +
+ )} + + !actionType || actionType === 'createNewPost' + +const postCreationActionFields = { + updateExistingPost: [ + { key: 'post_id', name: __('Post ID', 'bit-integrations'), required: true }, + { key: 'post_title', name: __('Post Title', 'bit-integrations'), required: false }, + { key: 'post_content', name: __('Post Content', 'bit-integrations'), required: false }, + { key: 'post_status', name: __('Post Status', 'bit-integrations'), required: false }, + { key: 'post_type', name: __('Post Type', 'bit-integrations'), required: false }, + { key: 'post_author', name: __('Post Author ID', 'bit-integrations'), required: false }, + { key: 'post_date', name: __('Post Date', 'bit-integrations'), required: false }, + { key: 'post_name', name: __('Post Slug', 'bit-integrations'), required: false }, + { key: 'post_excerpt', name: __('Post Excerpt', 'bit-integrations'), required: false }, + { key: 'featured_image_url', name: __('Featured Image URL', 'bit-integrations'), required: false } + ], + updatePostStatus: [ + { key: 'post_id', name: __('Post ID', 'bit-integrations'), required: true }, + { key: 'post_status', name: __('Post Status', 'bit-integrations'), required: true } + ], + deleteExistingPost: [{ key: 'post_id', name: __('Post ID', 'bit-integrations'), required: true }], + createNewComment: [ + { key: 'comment_post_ID', name: __('Post ID', 'bit-integrations'), required: true }, + { key: 'comment_content', name: __('Comment Content', 'bit-integrations'), required: true }, + { key: 'comment_author', name: __('Author Name', 'bit-integrations'), required: false }, + { key: 'comment_author_email', name: __('Author Email', 'bit-integrations'), required: false }, + { key: 'comment_author_url', name: __('Author URL', 'bit-integrations'), required: false }, + { key: 'comment_parent', name: __('Parent Comment ID', 'bit-integrations'), required: false } + ], + replyToComment: [ + { key: 'comment_parent', name: __('Parent Comment ID', 'bit-integrations'), required: true }, + { key: 'comment_content', name: __('Comment Content', 'bit-integrations'), required: true }, + { key: 'comment_post_ID', name: __('Post ID', 'bit-integrations'), required: false }, + { key: 'comment_author', name: __('Author Name', 'bit-integrations'), required: false }, + { key: 'comment_author_email', name: __('Author Email', 'bit-integrations'), required: false } + ], + deleteExistingComment: [ + { key: 'comment_id', name: __('Comment ID', 'bit-integrations'), required: true } + ] +} + +export const getPostCreationFieldsByAction = actionType => { + if (isLegacyPostCreationAction(actionType)) { + return defaultPostFields + } + + return postCreationActionFields[actionType] || defaultPostFields +} + +export const generatePostCreationFieldMap = actionType => { + const fields = getPostCreationFieldsByAction(actionType) + const requiredFields = fields.filter(field => field.required) + + if (requiredFields.length > 0) { + return requiredFields.map(field => ({ + formField: '', + postField: field.key, + required: true + })) + } + + return [{ formField: '', postField: '' }] +} export const addFieldMap = (fldProp, i, confTmp, setConf) => { const newConf = { ...confTmp } diff --git a/frontend/src/components/AllIntegrations/Registration/EditRegistration.jsx b/frontend/src/components/AllIntegrations/Registration/EditRegistration.jsx index 82e1e0c6c..5160254a6 100644 --- a/frontend/src/components/AllIntegrations/Registration/EditRegistration.jsx +++ b/frontend/src/components/AllIntegrations/Registration/EditRegistration.jsx @@ -9,8 +9,13 @@ import SnackMsg from '../../Utilities/SnackMsg' import { saveActionConf, saveIntegConfig } from '../IntegrationHelpers/IntegrationHelpers' import UserFieldMap from './UserFieldMap' import UserMetaField from './UserMetaField' -import { userFields } from '../../../Utils/StaticData/userField' -import { checkMappedUserFields } from './UserHelperFunction' +import { + checkMappedUserFields, + generateRegistrationFieldMap, + getRegistrationFieldsByAction, + isLegacyRegistrationAction, + registrationExtraActions +} from './UserHelperFunction' import EditFormInteg from '../EditFormInteg' import SetEditIntegComponents from '../IntegrationHelpers/SetEditIntegComponents' import LoaderSm from '../../Loaders/LoaderSm' @@ -18,7 +23,6 @@ import { $actionConf, $formFields, $newFlow } from '../../../GlobalStates' import EditWebhookInteg from '../EditWebhookInteg' import TableCheckBox from '../../Utilities/TableCheckBox' import ConditionalLogic from '../../ConditionalLogic' -import CheckBox from '../../Utilities/CheckBox' import Note from '../../Utilities/Note' import RegistrationActions from './RegistrationActions' import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' @@ -33,24 +37,43 @@ export default function EditRegistration({ allIntegURL }) { const [flow, setFlow] = useRecoilState($newFlow) const formFields = useRecoilValue($formFields) const [userConf, setUserConf] = useRecoilState($actionConf) -useEffect(() => { + useEffect(() => { const tmpConf = { ...userConf } + if (!tmpConf.action_type) { + tmpConf.action_type = 'new_user' + } + if (!tmpConf?.user_map?.[0]?.userField) { - tmpConf.user_map = userFields - .filter(fld => fld.required) - .map(fl => ({ formField: '', userField: fl.key, required: fl.required })) + tmpConf.user_map = generateRegistrationFieldMap(tmpConf.action_type) } setUserConf(tmpConf) }, []) + const setActionType = actionType => { + const nextAction = actionType || 'new_user' + setUserConf(prevConf => ({ + ...prevConf, + action_type: nextAction, + user_map: generateRegistrationFieldMap(nextAction) + })) + } + + const isLegacyAction = isLegacyRegistrationAction(userConf?.action_type) + const selectedUserFields = getRegistrationFieldsByAction(userConf?.action_type || 'new_user') + const registrationMainActions = [ + { value: 'new_user', label: __('New User Create', 'bit-integrations') }, + { value: 'updated_user', label: __('Updated User', 'bit-integrations') }, + ...registrationExtraActions + ] + const saveConfig = () => { if (!userConf.action_type) { setSnackbar({ show: true, msg: __('Please select action type', 'bit-integrations') }) return } - if (!userConf.user_role && userConf.action_type !== 'updated_user') { + if (userConf.action_type === 'new_user' && !userConf.user_role) { setSnackbar({ show: true, msg: __("User Role can't be empty", 'bit-integrations') }) return } @@ -80,13 +103,11 @@ useEffect(() => { setUserConf(tmpConf) } - const actionHandler = e => { - const newConf = { ...userConf } - const { name, value } = e.target - if (e.target.checked) { - newConf[name] = value + const actionTypeHandler = e => { + if (!e.target.value) { + return } - setUserConf({ ...newConf }) + setActionType(e.target.value) } const userUpdateInstruction = ` @@ -109,29 +130,24 @@ useEffect(() => { return (
- +

{__('Action type', 'bit-integrations')}
- - +


@@ -143,30 +159,34 @@ useEffect(() => { userConf={userConf} setUserConf={setUserConf} roles={roles} - userFields={userFields} - /> -
-
-
-
+ {isLegacyAction && ( + <> +
+ +
+
-
- {__('Utilities', 'bit-integrations')} -
-
- +
+ {__('Utilities', 'bit-integrations')} +
+
+ -
- +
+ + + )} {userConf?.condition && ( <> diff --git a/frontend/src/components/AllIntegrations/Registration/Registration.jsx b/frontend/src/components/AllIntegrations/Registration/Registration.jsx index a736d9250..fc670ceec 100644 --- a/frontend/src/components/AllIntegrations/Registration/Registration.jsx +++ b/frontend/src/components/AllIntegrations/Registration/Registration.jsx @@ -8,12 +8,16 @@ import SnackMsg from '../../Utilities/SnackMsg' import { saveIntegConfig } from '../IntegrationHelpers/IntegrationHelpers' import UserFieldMap from './UserFieldMap' import UserMetaField from './UserMetaField' -import { userFields } from '../../../Utils/StaticData/userField' -import { checkMappedUserFields } from './UserHelperFunction' +import { + checkMappedUserFields, + generateRegistrationFieldMap, + getRegistrationFieldsByAction, + isLegacyRegistrationAction, + registrationExtraActions +} from './UserHelperFunction' import LoaderSm from '../../Loaders/LoaderSm' import ConditionalLogic from '../../ConditionalLogic' import TableCheckBox from '../../Utilities/TableCheckBox' -import CheckBox from '../../Utilities/CheckBox' import Note from '../../Utilities/Note' import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' @@ -25,10 +29,11 @@ export default function Registration({ formFields, setFlow, flow, allIntegURL }) const [roles, setRoles] = useState([]) const navigate = useNavigate() const [isLoading, setIsLoading] = useState(false) -const [userConf, setUserConf] = useState({ + const [userConf, setUserConf] = useState({ name: 'WP User Registration', type: 'WP User Registration', - user_map: [{}], + action_type: 'new_user', + user_map: generateRegistrationFieldMap('new_user'), meta_map: [{}], condition: { action_behavior: '', @@ -44,20 +49,39 @@ const [userConf, setUserConf] = useState({ setRoles(Object.values(res?.data)) } }) + if (!tmpConf.action_type) { + tmpConf.action_type = 'new_user' + } if (!tmpConf?.user_map?.[0]?.userField) { - tmpConf.user_map = userFields - .filter(fld => fld.required) - .map(fl => ({ formField: '', userField: fl.key, required: fl.required })) + tmpConf.user_map = generateRegistrationFieldMap(tmpConf.action_type) } setUserConf(tmpConf) }, []) + + const setActionType = actionType => { + const newAction = actionType || 'new_user' + setUserConf(prevConf => ({ + ...prevConf, + action_type: newAction, + user_map: generateRegistrationFieldMap(newAction) + })) + } + + const isLegacyAction = isLegacyRegistrationAction(userConf?.action_type) + const selectedUserFields = getRegistrationFieldsByAction(userConf?.action_type || 'new_user') + const registrationMainActions = [ + { value: 'new_user', label: __('New User Create', 'bit-integrations') }, + { value: 'updated_user', label: __('Updated User', 'bit-integrations') }, + ...registrationExtraActions + ] + const saveConfig = () => { if (!userConf.action_type) { setSnackbar({ show: true, msg: __('Please select action type', 'bit-integrations') }) return } - if (!userConf.user_role && userConf.action_type !== 'updated_user') { + if (userConf.action_type === 'new_user' && !userConf.user_role) { setSnackbar({ show: true, msg: __("User Role can't be empty", 'bit-integrations') }) return } @@ -79,13 +103,11 @@ const [userConf, setUserConf] = useState({ setUserConf(tmpConf) } - const actionHandler = e => { - const newConf = { ...userConf } - const { name, value } = e.target - if (e.target.checked) { - newConf[name] = value + const actionTypeHandler = e => { + if (!e.target.value) { + return } - setUserConf({ ...newConf }) + setActionType(e.target.value) } const userUpdateInstruction = ` @@ -108,25 +130,22 @@ const [userConf, setUserConf] = useState({ return (
- +
{' '}
- - +
+ +

@@ -136,26 +155,30 @@ const [userConf, setUserConf] = useState({ userConf={userConf} setUserConf={setUserConf} roles={roles} - userFields={userFields} - /> -
-
-
-
- {__('Utilities', 'bit-integrations')} -
-
- -
- + {isLegacyAction && ( + <> +
+ +
+
+ {__('Utilities', 'bit-integrations')} +
+
+ +
+ + + )} {userConf?.condition && ( <>
diff --git a/frontend/src/components/AllIntegrations/Registration/UserHelperFunction.js b/frontend/src/components/AllIntegrations/Registration/UserHelperFunction.js index 413e9a396..9268044ae 100644 --- a/frontend/src/components/AllIntegrations/Registration/UserHelperFunction.js +++ b/frontend/src/components/AllIntegrations/Registration/UserHelperFunction.js @@ -1,6 +1,92 @@ /* eslint-disable no-param-reassign */ import bitsFetch from '../../../Utils/bitsFetch' +import { __ } from '../../../Utils/i18nwrap' +import { userFields as defaultUserFields } from '../../../Utils/StaticData/userField' + +export const registrationExtraActions = [ + { value: 'deleteExistingUser', label: __('Delete Existing User', 'bit-integrations') }, + { value: 'updateUserMetadata', label: __('Update User Metadata', 'bit-integrations') }, + { value: 'createRole', label: __('Create Role', 'bit-integrations') }, + { value: 'deleteRole', label: __('Delete Role', 'bit-integrations') }, + { value: 'addUserRoles', label: __('Add User Roles', 'bit-integrations') }, + { value: 'removeUserRole', label: __('Remove User Role', 'bit-integrations') }, + { value: 'updateUserRole', label: __('Update User Role', 'bit-integrations') }, + { value: 'addRoleCapabilities', label: __('Add Role Capabilities', 'bit-integrations') }, + { value: 'removeRoleCapabilities', label: __('Remove Role Capabilities', 'bit-integrations') }, + { value: 'addUserCapabilities', label: __('Add User Capabilities', 'bit-integrations') }, + { value: 'removeUserCapabilities', label: __('Remove User Capabilities', 'bit-integrations') } +] + +export const isLegacyRegistrationAction = actionType => + actionType === 'new_user' || actionType === 'updated_user' + +const registrationActionFields = { + deleteExistingUser: [{ key: 'user_id', name: __('User ID', 'bit-integrations'), required: true }], + updateUserMetadata: [ + { key: 'user_id', name: __('User ID', 'bit-integrations'), required: true }, + { key: 'meta_key', name: __('Meta Key', 'bit-integrations'), required: true }, + { key: 'meta_value', name: __('Meta Value', 'bit-integrations'), required: true } + ], + createRole: [ + { key: 'role_name', name: __('Role Name', 'bit-integrations'), required: true }, + { key: 'display_name', name: __('Display Name', 'bit-integrations'), required: true }, + { key: 'capabilities', name: __('Capabilities (comma separated)', 'bit-integrations'), required: false } + ], + deleteRole: [{ key: 'role_name', name: __('Role Name', 'bit-integrations'), required: true }], + addUserRoles: [ + { key: 'user_id', name: __('User ID', 'bit-integrations'), required: true }, + { key: 'role', name: __('Role', 'bit-integrations'), required: true } + ], + removeUserRole: [ + { key: 'user_id', name: __('User ID', 'bit-integrations'), required: true }, + { key: 'role', name: __('Role', 'bit-integrations'), required: true } + ], + updateUserRole: [ + { key: 'user_id', name: __('User ID', 'bit-integrations'), required: true }, + { key: 'old_role', name: __('Old Role', 'bit-integrations'), required: true }, + { key: 'new_role', name: __('New Role', 'bit-integrations'), required: true } + ], + addRoleCapabilities: [ + { key: 'role_name', name: __('Role Name', 'bit-integrations'), required: true }, + { key: 'capabilities', name: __('Capabilities (comma separated)', 'bit-integrations'), required: true } + ], + removeRoleCapabilities: [ + { key: 'role_name', name: __('Role Name', 'bit-integrations'), required: true }, + { key: 'capabilities', name: __('Capabilities (comma separated)', 'bit-integrations'), required: true } + ], + addUserCapabilities: [ + { key: 'user_id', name: __('User ID', 'bit-integrations'), required: true }, + { key: 'capabilities', name: __('Capabilities (comma separated)', 'bit-integrations'), required: true } + ], + removeUserCapabilities: [ + { key: 'user_id', name: __('User ID', 'bit-integrations'), required: true }, + { key: 'capabilities', name: __('Capabilities (comma separated)', 'bit-integrations'), required: true } + ] +} + +export const getRegistrationFieldsByAction = actionType => { + if (isLegacyRegistrationAction(actionType)) { + return defaultUserFields + } + + return registrationActionFields[actionType] || defaultUserFields +} + +export const generateRegistrationFieldMap = actionType => { + const fields = getRegistrationFieldsByAction(actionType) + const requiredFields = fields.filter(field => field.required) + + if (requiredFields.length > 0) { + return requiredFields.map(field => ({ + formField: '', + userField: field.key, + required: true + })) + } + + return [{ formField: '', userField: '' }] +} export const addFieldMap = (fldProp, i, confTmp, setConf) => { const newConf = { ...confTmp } diff --git a/frontend/src/components/AllIntegrations/WebHooks/WebHooks.jsx b/frontend/src/components/AllIntegrations/WebHooks/WebHooks.jsx index 5f8b5465c..6fd6699c9 100644 --- a/frontend/src/components/AllIntegrations/WebHooks/WebHooks.jsx +++ b/frontend/src/components/AllIntegrations/WebHooks/WebHooks.jsx @@ -16,7 +16,7 @@ function WebHooks({ formFields, setFlow, flow, allIntegURL }) { const [step, setStep] = useState(1) const [snack, setSnackbar] = useState({ show: false }) const [isLoading, setIsLoading] = useState(false) -const [webHooks, setWebHooks] = useState({ + const [webHooks, setWebHooks] = useState({ name: 'Web Hooks', type: 'Web Hooks', method: 'POST', @@ -34,8 +34,6 @@ const [webHooks, setWebHooks] = useState({
- - { @@ -62,52 +45,6 @@ export const handleInput = (e, wordPressConf, setWordPressConf) => { export const getFieldsForAction = action => { switch (action) { - // User Management - case 'createNewUser': - return CreateUserFields - case 'updateUser': - return UpdateUserFields - case 'deleteExistingUser': - return UserIdField - // User Metadata - case 'updateUserMetadata': - return UpdateUserMetaFields - // Role Management - case 'createRole': - return CreateRoleFields - case 'deleteRole': - return RoleNameField - case 'addUserRoles': - return UserRoleManageFields - case 'removeUserRole': - return UserRoleManageFields - case 'updateUserRole': - return UpdateUserRoleFields - // Capabilities - case 'addRoleCapabilities': - return RoleCapabilitiesFields - case 'removeRoleCapabilities': - return RoleCapabilitiesFields - case 'addUserCapabilities': - return UserCapabilitiesFields - case 'removeUserCapabilities': - return UserCapabilitiesFields - // Post Management - case 'createNewPost': - return CreatePostFields - case 'updateExistingPost': - return UpdatePostFields - case 'updatePostStatus': - return UpdatePostStatusFields - case 'deleteExistingPost': - return PostIdField - // Comments - case 'createNewComment': - return CreateCommentFields - case 'replyToComment': - return ReplyCommentFields - case 'deleteExistingComment': - return CommentIdField // Post Types case 'registerPostType': return RegisterPostTypeFields diff --git a/frontend/src/components/AllIntegrations/WordPress/staticData.js b/frontend/src/components/AllIntegrations/WordPress/staticData.js index b9f32dbc3..31d491377 100644 --- a/frontend/src/components/AllIntegrations/WordPress/staticData.js +++ b/frontend/src/components/AllIntegrations/WordPress/staticData.js @@ -1,43 +1,9 @@ import { __ } from '../../../Utils/i18nwrap' export const modules = [ - // User Management - { name: 'createNewUser', label: __('Create New User', 'bit-integrations'), is_pro: true }, - { name: 'updateUser', label: __('Update User', 'bit-integrations'), is_pro: true }, - { name: 'deleteExistingUser', label: __('Delete User', 'bit-integrations'), is_pro: true }, - { name: 'updateUserMetadata', label: __('Update User Metadata', 'bit-integrations'), is_pro: true }, - // Role Management - { name: 'createRole', label: __('Create Role', 'bit-integrations'), is_pro: true }, - { name: 'deleteRole', label: __('Delete Role', 'bit-integrations'), is_pro: true }, - { name: 'addUserRoles', label: __('Add User Roles', 'bit-integrations'), is_pro: true }, - { name: 'removeUserRole', label: __('Remove User Role', 'bit-integrations'), is_pro: true }, - { name: 'updateUserRole', label: __('Update User Role', 'bit-integrations'), is_pro: true }, - // Capabilities - { name: 'addRoleCapabilities', label: __('Add Role Capabilities', 'bit-integrations'), is_pro: true }, - { - name: 'removeRoleCapabilities', - label: __('Remove Role Capabilities', 'bit-integrations'), - is_pro: true - }, - { name: 'addUserCapabilities', label: __('Add User Capabilities', 'bit-integrations'), is_pro: true }, - { - name: 'removeUserCapabilities', - label: __('Remove User Capabilities', 'bit-integrations'), - is_pro: true - }, - // Post Management - { name: 'createNewPost', label: __('Create New Post', 'bit-integrations'), is_pro: true }, - { name: 'updateExistingPost', label: __('Update Existing Post', 'bit-integrations'), is_pro: true }, - { name: 'updatePostStatus', label: __('Update Post Status', 'bit-integrations'), is_pro: true }, - { name: 'deleteExistingPost', label: __('Delete Existing Post', 'bit-integrations'), is_pro: true }, - // Comments - { name: 'createNewComment', label: __('Create New Comment', 'bit-integrations'), is_pro: true }, - { name: 'replyToComment', label: __('Reply To Comment', 'bit-integrations'), is_pro: true }, - { - name: 'deleteExistingComment', - label: __('Delete Existing Comment', 'bit-integrations'), - is_pro: true - }, + // User/Post actions moved to dedicated actions: + // - WP User Registration + // - WP Post Creation // Post Types { name: 'registerPostType', label: __('Register Post Type', 'bit-integrations'), is_pro: true }, { name: 'unregisterPostType', label: __('Unregister Post Type', 'bit-integrations'), is_pro: true }, From 9413933797c0fa5e5734eb69e3dd4f0de217bfe5 Mon Sep 17 00:00:00 2001 From: Rishad Alam <101513331+RishadAlam@users.noreply.github.com> Date: Wed, 22 Apr 2026 12:56:17 +0600 Subject: [PATCH 04/10] refactor: tutorial links component --- .../Utils/StaticData/webhookIntegrations.js | 3 +- .../ACPT/ACPTAuthorization.jsx | 3 +- .../AcademyLms/AcademyLmsAuthorization.jsx | 3 +- .../ActiveCampaignAuthorization.jsx | 4 +- .../Acumbamail/AcumbamailAuthorization.jsx | 3 +- .../AdvancedFormIntegration.jsx | 3 +- .../Affiliate/AffiliateAuthorization.jsx | 3 +- .../AgiledCRM/AgiledAuthorization.jsx | 3 +- .../Airtable/AirtableAuthorization.jsx | 3 +- .../AllIntegrations/Albato/Albato.jsx | 3 +- .../AllIntegrations/AntApps/AntApps.jsx | 4 +- .../Asana/AsanaAuthorization.jsx | 3 +- .../AutomatorWP/AutomatorWP.jsx | 4 +- .../Autonami/AutonamiAuthorization.jsx | 4 +- .../BenchMark/BenchMarkAuthorization.jsx | 3 +- .../Bento/BentoAuthorization.jsx | 3 +- .../BitForm/BitFormAuthorization.jsx | 3 +- .../BuddyBoss/BuddyBossAuthorization.jsx | 4 +- .../CampaignMonitorAuthorization.jsx | 3 +- .../CapsuleCRM/CapsuleCRMAuthorization.jsx | 4 +- .../Clickup/ClickupAuthorization.jsx | 3 +- .../ClinchPad/ClinchPadAuthorization.jsx | 3 +- .../CompanyHub/CompanyHubAuthorization.jsx | 3 +- .../ConstantContactAuthorization.jsx | 3 +- .../ConvertKit/ConvertKitAuthorization.jsx | 3 +- .../CopperCRM/CopperCRMAuthorization.jsx | 3 +- .../CreatorLms/CreatorLmsAuthorization.jsx | 8 +--- .../CustomAction/CustomAction.jsx | 3 +- .../CustomAction/EditCustomAction.jsx | 4 +- .../CustomApi/CustomApiAuthorization.jsx | 4 +- .../Demio/DemioAuthorization.jsx | 3 +- .../DirectIq/DirectIqAuthorization.jsx | 3 +- .../Discord/DiscordAuthorization.jsx | 3 +- .../Dokan/DokanAuthorization.jsx | 3 +- .../Drip/DripAuthorization.jsx | 3 +- .../Dropbox/DropboxAuthorization.jsx | 3 +- .../ElasticEmailAuthorization.jsx | 4 +- .../EmailOctopusAuthorization.jsx | 3 +- .../Encharge/EnchargeAuthorization.jsx | 3 +- .../Fabman/FabmanAuthorization.jsx | 3 +- .../AllIntegrations/FlowMattic/FlowMattic.jsx | 3 +- .../Flowlu/FlowluAuthorization.jsx | 3 +- .../FluentCRM/FluentCrmAuthorization.jsx | 3 +- .../FluentCart/FluentCartAuthorization.jsx | 3 +- .../FluentSupportAuthorization.jsx | 3 +- .../FreshSales/FreshSalesAuthorization.jsx | 3 +- .../Freshdesk/FreshdeskAuthorization.jsx | 3 +- .../GamiPress/GamiPressAuthorization.jsx | 3 +- .../GetResponse/GetResponseAuthorization.jsx | 3 +- .../Getgist/GetgistAuthorization.jsx | 3 +- .../GiveWp/GiveWpAuthorization.jsx | 3 +- .../GoogleCalendarAuthorization.jsx | 3 +- .../GoogleContactsAuthorization.jsx | 3 +- .../GoogleDrive/GoogleDriveAuthorization.jsx | 4 +- .../GoogleSheet/GoogleSheetAuthorization.jsx | 3 +- .../Gravitec/GravitecAuthorization.jsx | 3 +- .../Groundhogg/GroundhoggAuthorization.jsx | 3 +- .../HighLevel/HighLevelAuthorization.jsx | 3 +- .../Hubspot/HubspotAuthorization.jsx | 3 +- .../AllIntegrations/IFTTT/IFTTT.jsx | 3 +- .../Insightly/InsightlyAuthorization.jsx | 4 +- .../Integrately/Integrately.jsx | 3 +- .../WebHook/WebHooksIntegration.jsx | 3 +- .../AllIntegrations/Integromat/Integromat.jsx | 3 +- .../JetEngine/JetEngineAuthorization.jsx | 3 +- .../Keap/KeapAuthorization.jsx | 3 +- .../KirimEmail/KirimEmailAuthorization.jsx | 3 +- .../Klaviyo/KlaviyoAuthorization.jsx | 3 +- .../AllIntegrations/KonnectzIT/KonnectzIT.jsx | 3 +- .../LMFWC/LMFWCAuthorization.jsx | 3 +- .../LearnDash/LearnDashAuthorization.jsx | 3 +- .../Lemlist/LemlistAuthorization.jsx | 3 +- .../LifterLms/LifterLmsAuthorization.jsx | 3 +- .../Line/LineAuthorization.jsx | 3 +- .../LionDesk/LionDeskAuthorization.jsx | 4 +- .../Livestorm/LivestormAuthorization.jsx | 3 +- .../components/AllIntegrations/Mail/Mail.jsx | 3 +- .../MailBluster/MailBlusterAuthorization.jsx | 3 +- .../MailChimp/MailChimpAuthorization.jsx | 3 +- .../MailMint/MailMintAuthorization.jsx | 3 +- .../MailPoet/MailPoetAuthorization.jsx | 3 +- .../MailRelay/MailRelayAuthorization.jsx | 3 +- .../MailerLite/MailerLiteAuthorization.jsx | 3 +- .../MailerPress/MailerPressAuthorization.jsx | 3 +- .../Mailercloud/MailercloudAuthorization.jsx | 3 +- .../Mailify/MailifyAuthorization.jsx | 3 +- .../Mailjet/MailjetAuthorization.jsx | 3 +- .../Mailster/MailsterAuthorization.jsx | 3 +- .../Mailup/MailupAuthorization.jsx | 3 +- .../MasterStudyLms/MasterStudyLms.jsx | 1 - .../MasterStudyLmsAuthorization.jsx | 4 +- .../Mautic/MauticAuthorization.jsx | 4 +- .../Memberpress/MemberpressAuthorization.jsx | 3 +- .../Moosend/MoosendAuthorization.jsx | 3 +- .../MoxieCRM/MoxieCRMAuthorization.jsx | 3 +- .../components/AllIntegrations/N8n/N8n.jsx | 3 +- .../Newsletter/NewsletterAuthorization.jsx | 3 +- .../Nimble/NimbleAuthorization.jsx | 3 +- .../NinjaTables/NinjaTablesAuthorization.jsx | 1 - .../NotificationXAuthorization.jsx | 3 +- .../Notion/NotionAuthorization.jsx | 3 +- .../NutshellCRM/NutshellCRMAuthorization.jsx | 3 +- .../OmniSend/OmniSendAuthorization.jsx | 3 +- .../OneDrive/OneDriveAuthorization.jsx | 3 +- .../OneHashCRM/OneHashCRMAuthorization.jsx | 3 +- .../PCloud/PCloudAuthorization.jsx | 3 +- .../AllIntegrations/Pabbly/Pabbly.jsx | 3 +- .../PaidMembershipProAuthorization.jsx | 3 +- .../PerfexCRM/PerfexCRMAuthorization.jsx | 4 +- .../PipeDrive/PipeDriveAuthorization.jsx | 3 +- .../components/AllIntegrations/Pods/Pods.jsx | 3 +- .../AllIntegrations/PostCreation/Post.jsx | 3 +- .../PropovoiceCrmAuthorization.jsx | 3 +- .../Rapidmail/RapidmailAuthorization.jsx | 3 +- .../Registration/EditRegistration.jsx | 3 +- .../Registration/Registration.jsx | 3 +- .../RestrictContentAuthorization.jsx | 4 +- .../Salesflare/SalesflareAuthorization.jsx | 3 +- .../Salesforce/SalesforceAuthorization.jsx | 3 +- .../Salesmate/SalesmateAuthorization.jsx | 3 +- .../Selzy/SelzyAuthorization.jsx | 3 +- .../SendFox/SendFoxAuthorization.jsx | 3 +- .../SendGrid/SendGridAuthorization.jsx | 3 +- .../SendPulse/SendPulseAuthorization.jsx | 3 +- .../SendinBlue/SendinBlueAuthorization.jsx | 3 +- .../Sendy/SendyAuthorization.jsx | 3 +- .../SeoPress/SeoPressAuthorization.jsx | 3 +- .../Slack/SlackAuthorization.jsx | 3 +- .../SliceWp/SliceWpAuthorization.jsx | 3 +- .../Smaily/SmailyAuthorization.jsx | 3 +- .../SmartSuite/SmartSuiteAuthorization.jsx | 3 +- .../AllIntegrations/SperseIO/SperseIO.jsx | 3 +- .../SuiteDash/SuiteDashAuthorization.jsx | 3 +- .../SureCart/SureCartAuthorization.jsx | 3 +- .../SureMembers/SureMembersAuthorization.jsx | 3 +- .../SureTriggers/SureTriggers.jsx | 3 +- .../AllIntegrations/SyncSpider/SyncSpider.jsx | 4 +- .../SystemeIO/SystemeIOAuthorization.jsx | 3 +- ...ForWooCommerceMembershipsAuthorization.jsx | 3 +- .../Telegram/TelegramAuthorization.jsx | 3 +- .../TheEventsCalendarAuthorization.jsx | 3 +- .../ThriveAutomator/ThriveAutomator.jsx | 3 +- .../Trello/TrelloAuthorization.jsx | 3 +- .../TutorLms/TutorLmsAuthorization.jsx | 3 +- .../Twilio/TwilioAuthorization.jsx | 3 +- .../UltimateAffiliateProAuthorization.jsx | 4 +- .../UncannyAutomator/UncannyAutomator.jsx | 3 +- ...serRegistrationMembershipAuthorization.jsx | 6 +-- .../Vbout/VboutAuthorization.jsx | 3 +- .../Voxel/VoxelAuthorization.jsx | 3 +- .../WPCafe/WPCafeAuthorization.jsx | 3 +- .../WPCoursewareAuthorization.jsx | 3 +- .../WPForo/WPForoAuthorization.jsx | 3 +- .../AllIntegrations/WPFusion/WPFusion.jsx | 3 +- .../AllIntegrations/WPWebhooks/WPWebhooks.jsx | 3 +- .../WeDocs/WeDocsAuthorization.jsx | 5 +-- .../AllIntegrations/WebHooks/WebHooks.jsx | 1 - .../WhatsApp/WhatsAppAuthorization.jsx | 3 +- .../WishlistMemberAuthorization.jsx | 3 +- .../WooCommerce/WooCommerceAuthorization.jsx | 3 +- .../Woodpecker/WoodpeckerAuthorization.jsx | 3 +- .../WordPress/WordPressAuthorization.jsx | 3 ++ .../ZagoMail/ZagoMailAuthorization.jsx | 3 +- .../AllIntegrations/Zapier/Zapier.jsx | 3 +- .../Zendesk/ZendeskAuthorization.jsx | 3 +- .../ZohoAnalyticsAuthorization.jsx | 3 +- .../ZohoBigin/ZohoBiginAuthorization.jsx | 3 +- .../ZohoCRM/ZohoCRMAuthorization.jsx | 3 +- .../ZohoCampaignsAuthorization.jsx | 3 +- .../ZohoCreator/ZohoCreatorAuthorization.jsx | 3 +- .../ZohoDesk/ZohoDeskAuthorization.jsx | 3 +- .../AllIntegrations/ZohoFlow/ZohoFlow.jsx | 3 +- .../ZohoMarketingHubAuthorization.jsx | 3 +- .../ZohoRecruit/ZohoRecruitAuthorization.jsx | 3 +- .../ZohoSheet/ZohoSheetAuthorization.jsx | 3 +- .../Zoom/ZoomAuthorization.jsx | 3 +- .../ZoomWebinar/ZoomWebinarAuthorization.jsx | 3 +- .../src/components/Triggers/ActionHook.jsx | 18 ++++---- .../Triggers/CustomFormSubmission.jsx | 18 +++++--- .../src/components/Triggers/CustomTrigger.jsx | 28 ++++++++----- .../src/components/Triggers/FormPlugin.jsx | 29 ++++++++----- frontend/src/components/Triggers/Webhook.jsx | 41 +++++++++++-------- .../src/components/Utilities/TutorialLink.jsx | 6 ++- 183 files changed, 263 insertions(+), 430 deletions(-) diff --git a/frontend/src/Utils/StaticData/webhookIntegrations.js b/frontend/src/Utils/StaticData/webhookIntegrations.js index 7e9d5c7d2..5d6437c0e 100644 --- a/frontend/src/Utils/StaticData/webhookIntegrations.js +++ b/frontend/src/Utils/StaticData/webhookIntegrations.js @@ -94,7 +94,8 @@ export const customFormIntegrations = [ 'WeDocs', 'UserRegistrationMembership', 'UltimateAffiliatePro', - 'Registration' + 'Registration', + 'Post' ] export const actionHookIntegrations = ['ActionHook'] diff --git a/frontend/src/components/AllIntegrations/ACPT/ACPTAuthorization.jsx b/frontend/src/components/AllIntegrations/ACPT/ACPTAuthorization.jsx index 0a3833bd1..b861b748a 100644 --- a/frontend/src/components/AllIntegrations/ACPT/ACPTAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/ACPT/ACPTAuthorization.jsx @@ -2,7 +2,6 @@ /* eslint-disable no-unused-expressions */ import { useCallback, useState } from 'react' import { __ } from '../../../Utils/i18nwrap' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import TutorialLink from '../../Utilities/TutorialLink' @@ -47,7 +46,7 @@ const handleInput = useCallback(e => {
- +
diff --git a/frontend/src/components/AllIntegrations/AcademyLms/AcademyLmsAuthorization.jsx b/frontend/src/components/AllIntegrations/AcademyLms/AcademyLmsAuthorization.jsx index 4e674f68a..119bec35b 100644 --- a/frontend/src/components/AllIntegrations/AcademyLms/AcademyLmsAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/AcademyLms/AcademyLmsAuthorization.jsx @@ -4,7 +4,6 @@ import { deepCopy } from '../../../Utils/Helpers' import bitsFetch from '../../../Utils/bitsFetch' import { __, sprintf } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function AcademyLmsAuthorization({ @@ -46,7 +45,7 @@ const [isAuthorized, setisAuthorized] = useState(false) width: step === 1 && 900, height: step === 1 && 'auto' }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/ActiveCampaign/ActiveCampaignAuthorization.jsx b/frontend/src/components/AllIntegrations/ActiveCampaign/ActiveCampaignAuthorization.jsx index 098263665..b7a63552b 100644 --- a/frontend/src/components/AllIntegrations/ActiveCampaign/ActiveCampaignAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/ActiveCampaign/ActiveCampaignAuthorization.jsx @@ -6,8 +6,6 @@ import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { refreshActiveCampaingHeader, refreshActiveCampaingList } from './ActiveCampaignCommonFunc' import TutorialLink from '../../Utilities/TutorialLink' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' - export default function ActiveCampaignAuthorization({ formID, activeCampaingConf, @@ -77,7 +75,7 @@ export default function ActiveCampaignAuthorization({
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Acumbamail/AcumbamailAuthorization.jsx b/frontend/src/components/AllIntegrations/Acumbamail/AcumbamailAuthorization.jsx index 6a8791821..d825c8d60 100644 --- a/frontend/src/components/AllIntegrations/Acumbamail/AcumbamailAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Acumbamail/AcumbamailAuthorization.jsx @@ -4,7 +4,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import CopyText from '../../Utilities/CopyText' import { fetchAllList, handleAuthorize } from './AcumbamailCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function AcumbamailAuthorization({ @@ -43,7 +42,7 @@ export default function AcumbamailAuthorization({
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/AdvancedFormIntegration/AdvancedFormIntegration.jsx b/frontend/src/components/AllIntegrations/AdvancedFormIntegration/AdvancedFormIntegration.jsx index 0025ec7bb..8ee457890 100644 --- a/frontend/src/components/AllIntegrations/AdvancedFormIntegration/AdvancedFormIntegration.jsx +++ b/frontend/src/components/AllIntegrations/AdvancedFormIntegration/AdvancedFormIntegration.jsx @@ -7,7 +7,6 @@ import Steps from '../../Utilities/Steps' import { saveIntegConfig } from '../IntegrationHelpers/IntegrationHelpers' import WebHooksIntegration from '../IntegrationHelpers/WebHook/WebHooksIntegration' import WebHooksStepTwo from '../IntegrationHelpers/WebHook/WebHooksStepTwo' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' function AdvancedFormIntegration({ formFields, setFlow, flow, allIntegURL }) { @@ -33,7 +32,7 @@ return (
- + { width: step === 1 && 900, height: step === 1 && 'auto' }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/AgiledCRM/AgiledAuthorization.jsx b/frontend/src/components/AllIntegrations/AgiledCRM/AgiledAuthorization.jsx index 5f7929bb7..155904376 100644 --- a/frontend/src/components/AllIntegrations/AgiledCRM/AgiledAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/AgiledCRM/AgiledAuthorization.jsx @@ -4,7 +4,6 @@ import { useState } from 'react' import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { agiledAuthentication } from './AgiledCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function AgiledAuthorization({ @@ -40,7 +39,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Airtable/AirtableAuthorization.jsx b/frontend/src/components/AllIntegrations/Airtable/AirtableAuthorization.jsx index a19f5505e..8c20f61af 100644 --- a/frontend/src/components/AllIntegrations/Airtable/AirtableAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Airtable/AirtableAuthorization.jsx @@ -4,7 +4,6 @@ import { useState } from 'react' import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { airtableAuthentication } from './AirtableCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function AirtableAuthorization({ @@ -41,7 +40,7 @@ export default function AirtableAuthorization({
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Albato/Albato.jsx b/frontend/src/components/AllIntegrations/Albato/Albato.jsx index b452dd05b..5fac1ceef 100644 --- a/frontend/src/components/AllIntegrations/Albato/Albato.jsx +++ b/frontend/src/components/AllIntegrations/Albato/Albato.jsx @@ -7,7 +7,6 @@ import Steps from '../../Utilities/Steps' import { saveIntegConfig } from '../IntegrationHelpers/IntegrationHelpers' import WebHooksIntegration from '../IntegrationHelpers/WebHook/WebHooksIntegration' import WebHooksStepTwo from '../IntegrationHelpers/WebHook/WebHooksStepTwo' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' function Albato({ formFields, setFlow, flow, allIntegURL }) { @@ -35,7 +34,7 @@ const [albato, setAlbato] = useState({
- + - + {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/AutomatorWP/AutomatorWP.jsx b/frontend/src/components/AllIntegrations/AutomatorWP/AutomatorWP.jsx index 5802e573c..2cb74b385 100644 --- a/frontend/src/components/AllIntegrations/AutomatorWP/AutomatorWP.jsx +++ b/frontend/src/components/AllIntegrations/AutomatorWP/AutomatorWP.jsx @@ -8,8 +8,6 @@ import { saveIntegConfig } from '../IntegrationHelpers/IntegrationHelpers' import WebHooksIntegration from '../IntegrationHelpers/WebHook/WebHooksIntegration' import WebHooksStepTwo from '../IntegrationHelpers/WebHook/WebHooksStepTwo' import TutorialLink from '../../Utilities/TutorialLink' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' - function AutomatorWP({ formFields, setFlow, flow, allIntegURL }) { const navigate = useNavigate() const { formID } = useParams() @@ -34,7 +32,7 @@ const [automatorWP, setAutomatorWP] = useState({
- + - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/BenchMark/BenchMarkAuthorization.jsx b/frontend/src/components/AllIntegrations/BenchMark/BenchMarkAuthorization.jsx index 2be98e62d..06c245288 100644 --- a/frontend/src/components/AllIntegrations/BenchMark/BenchMarkAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/BenchMark/BenchMarkAuthorization.jsx @@ -5,7 +5,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { refreshBenchMarkList, refreshBenchMarkHeader } from './BenchMarkCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function BenchMarkAuthorization({ @@ -76,7 +75,7 @@ const [isAuthorized, setisAuthorized] = useState(false)
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Bento/BentoAuthorization.jsx b/frontend/src/components/AllIntegrations/Bento/BentoAuthorization.jsx index bf85717e8..cf700ef9d 100644 --- a/frontend/src/components/AllIntegrations/Bento/BentoAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Bento/BentoAuthorization.jsx @@ -2,7 +2,6 @@ /* eslint-disable no-unused-expressions */ import { useState } from 'react' import { __ } from '../../../Utils/i18nwrap' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import TutorialLink from '../../Utilities/TutorialLink' @@ -42,7 +41,7 @@ const [error, setError] = useState({ publishable_key: '', secret_key: '' })
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/BitForm/BitFormAuthorization.jsx b/frontend/src/components/AllIntegrations/BitForm/BitFormAuthorization.jsx index e722eecae..787590b30 100644 --- a/frontend/src/components/AllIntegrations/BitForm/BitFormAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/BitForm/BitFormAuthorization.jsx @@ -4,7 +4,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import CopyText from '../../Utilities/CopyText' import { fetchAllForm, handleAuthorize } from './BitFormCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function BitFormAuthorization({ @@ -43,7 +42,7 @@ const [error, setError] = useState({ dataCenter: '', api_key: '' })
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/BuddyBoss/BuddyBossAuthorization.jsx b/frontend/src/components/AllIntegrations/BuddyBoss/BuddyBossAuthorization.jsx index 6383aa401..06df0561b 100644 --- a/frontend/src/components/AllIntegrations/BuddyBoss/BuddyBossAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/BuddyBoss/BuddyBossAuthorization.jsx @@ -5,8 +5,6 @@ import { deepCopy } from '../../../Utils/Helpers' import { __, sprintf } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import TutorialLink from '../../Utilities/TutorialLink' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' - export default function BuddyBossAuthorization({ formID, buddyBossConf, @@ -48,7 +46,7 @@ const authorizeHandler = () => { width: step === 1 && 900, height: step === 1 && 'auto' }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/CampaignMonitor/CampaignMonitorAuthorization.jsx b/frontend/src/components/AllIntegrations/CampaignMonitor/CampaignMonitorAuthorization.jsx index 605ae69f9..14f333c60 100644 --- a/frontend/src/components/AllIntegrations/CampaignMonitor/CampaignMonitorAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/CampaignMonitor/CampaignMonitorAuthorization.jsx @@ -6,7 +6,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { refreshCampaignMonitorLists } from './CampaignMonitorCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function CampaignMonitorAuthorization({ @@ -94,7 +93,7 @@ const handleAuthorize = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/CapsuleCRM/CapsuleCRMAuthorization.jsx b/frontend/src/components/AllIntegrations/CapsuleCRM/CapsuleCRMAuthorization.jsx index 29e7127e3..2e5b89112 100644 --- a/frontend/src/components/AllIntegrations/CapsuleCRM/CapsuleCRMAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/CapsuleCRM/CapsuleCRMAuthorization.jsx @@ -5,8 +5,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { capsulecrmAuthentication } from './CapsuleCRMCommonFunc' import TutorialLink from '../../Utilities/TutorialLink' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' - export default function CapsuleCRMAuthorization({ capsulecrmConf, setCapsuleCRMConf, @@ -40,7 +38,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Clickup/ClickupAuthorization.jsx b/frontend/src/components/AllIntegrations/Clickup/ClickupAuthorization.jsx index e94ab3bc8..1034646ca 100644 --- a/frontend/src/components/AllIntegrations/Clickup/ClickupAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Clickup/ClickupAuthorization.jsx @@ -4,7 +4,6 @@ import { useState } from 'react' import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { clickupAuthentication } from './ClickupCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' import Note from '../../Utilities/Note' @@ -51,7 +50,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/ClinchPad/ClinchPadAuthorization.jsx b/frontend/src/components/AllIntegrations/ClinchPad/ClinchPadAuthorization.jsx index 639d49539..ef8759988 100644 --- a/frontend/src/components/AllIntegrations/ClinchPad/ClinchPadAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/ClinchPad/ClinchPadAuthorization.jsx @@ -4,7 +4,6 @@ import { useState } from 'react' import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { clinchPadAuthentication } from './ClinchPadCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function ClinchPadAuthorization({ @@ -40,7 +39,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/CompanyHub/CompanyHubAuthorization.jsx b/frontend/src/components/AllIntegrations/CompanyHub/CompanyHubAuthorization.jsx index b0fcb7aa7..fc29dd636 100644 --- a/frontend/src/components/AllIntegrations/CompanyHub/CompanyHubAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/CompanyHub/CompanyHubAuthorization.jsx @@ -5,7 +5,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { companyHubAuthentication } from './CompanyHubCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function CompanyHubAuthorization({ @@ -51,7 +50,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/ConstantContact/ConstantContactAuthorization.jsx b/frontend/src/components/AllIntegrations/ConstantContact/ConstantContactAuthorization.jsx index 7983f8314..6bb5d4774 100644 --- a/frontend/src/components/AllIntegrations/ConstantContact/ConstantContactAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/ConstantContact/ConstantContactAuthorization.jsx @@ -5,7 +5,6 @@ import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import CopyText from '../../Utilities/CopyText' import { handleConstantContactAuthorize } from './ConstantContactCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' import { $appConfigState } from '../../../GlobalStates' import { useRecoilValue } from 'recoil' @@ -83,7 +82,7 @@ const [error, setError] = useState({ ...{ width: step === 1 && 900 }, ...{ height: step === 1 && 'auto' } }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/ConvertKit/ConvertKitAuthorization.jsx b/frontend/src/components/AllIntegrations/ConvertKit/ConvertKitAuthorization.jsx index 02967242e..bd0686eb2 100644 --- a/frontend/src/components/AllIntegrations/ConvertKit/ConvertKitAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/ConvertKit/ConvertKitAuthorization.jsx @@ -5,7 +5,6 @@ import { __, sprintf } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { refreshConvertKitForm } from './ConvertKitCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function ConvertKitAuthorization({ @@ -79,7 +78,7 @@ const [isAuthorized, setisAuthorized] = useState(false)
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/CopperCRM/CopperCRMAuthorization.jsx b/frontend/src/components/AllIntegrations/CopperCRM/CopperCRMAuthorization.jsx index 0a93acfd1..e68db80da 100644 --- a/frontend/src/components/AllIntegrations/CopperCRM/CopperCRMAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/CopperCRM/CopperCRMAuthorization.jsx @@ -5,7 +5,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { coppercrmAuthentication } from './CopperCRMCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function CopperCRMAuthorization({ @@ -49,7 +48,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/CreatorLms/CreatorLmsAuthorization.jsx b/frontend/src/components/AllIntegrations/CreatorLms/CreatorLmsAuthorization.jsx index f39404b7e..df5d019cc 100644 --- a/frontend/src/components/AllIntegrations/CreatorLms/CreatorLmsAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/CreatorLms/CreatorLmsAuthorization.jsx @@ -2,7 +2,6 @@ import { useState } from 'react' import BackIcn from '../../../Icons/BackIcn' import bitsFetch from '../../../Utils/bitsFetch' import { __ } from '../../../Utils/i18nwrap' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import LoaderSm from '../../Loaders/LoaderSm' import TutorialLink from '../../Utilities/TutorialLink' @@ -19,7 +18,6 @@ export default function CreatorLmsAuthorization({ }) { const [isAuthorized, setIsAuthorized] = useState(false) const [showAuthMsg, setShowAuthMsg] = useState(false) - const { creatorLms } = tutorialLinks const authorizeHandler = () => { setIsLoading('auth') @@ -49,10 +47,8 @@ export default function CreatorLmsAuthorization({ width: step === 1 && 900, height: step === 1 && 'auto' }}> - {creatorLms?.youTubeLink && ( - - )} - {creatorLms?.docLink && } + +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/CustomAction/CustomAction.jsx b/frontend/src/components/AllIntegrations/CustomAction/CustomAction.jsx index c6502e036..ccd835dec 100644 --- a/frontend/src/components/AllIntegrations/CustomAction/CustomAction.jsx +++ b/frontend/src/components/AllIntegrations/CustomAction/CustomAction.jsx @@ -9,7 +9,6 @@ import CustomActionStepTwo from './CustomActionStepTwo' import CustomFuncEditor from './CustomFuncEditor' import { checkFunctionValidity } from './CustomFunctionHelper' import TutorialLink from '../../Utilities/TutorialLink' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import LoaderSm from '../../Loaders/LoaderSm' const CustomAction = ({ formFields, setFlow, flow, allIntegURL }) => { @@ -61,7 +60,7 @@ const CustomAction = ({ formFields, setFlow, flow, allIntegURL }) => {
- +
diff --git a/frontend/src/components/AllIntegrations/CustomAction/EditCustomAction.jsx b/frontend/src/components/AllIntegrations/CustomAction/EditCustomAction.jsx index 73061e068..3210f6d3c 100644 --- a/frontend/src/components/AllIntegrations/CustomAction/EditCustomAction.jsx +++ b/frontend/src/components/AllIntegrations/CustomAction/EditCustomAction.jsx @@ -14,8 +14,6 @@ import CustomFuncEditor from './CustomFuncEditor' import { checkFunctionValidity } from './CustomFunctionHelper' import LoaderSm from '../../Loaders/LoaderSm' import TutorialLink from '../../Utilities/TutorialLink' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' - function EditCustomAction({ allIntegURL }) { const navigate = useNavigate() const { formID } = useParams() @@ -51,7 +49,7 @@ function EditCustomAction({ allIntegURL }) {
- +

custom action

{
- +
diff --git a/frontend/src/components/AllIntegrations/Demio/DemioAuthorization.jsx b/frontend/src/components/AllIntegrations/Demio/DemioAuthorization.jsx index 943536ad4..47ef096f2 100644 --- a/frontend/src/components/AllIntegrations/Demio/DemioAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Demio/DemioAuthorization.jsx @@ -5,7 +5,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { demioAuthentication, getAllEvents } from './DemioCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function DemioAuthorization({ @@ -53,7 +52,7 @@ const [error, setError] = useState({ api_key: '', api_secret: '' })
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/DirectIq/DirectIqAuthorization.jsx b/frontend/src/components/AllIntegrations/DirectIq/DirectIqAuthorization.jsx index 0aea411e4..d137bdb07 100644 --- a/frontend/src/components/AllIntegrations/DirectIq/DirectIqAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/DirectIq/DirectIqAuthorization.jsx @@ -5,7 +5,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { refreshDirectIqList } from './DirectIqCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function DirectIqAuthorization({ @@ -78,7 +77,7 @@ const [isAuthorized, setisAuthorized] = useState(false)
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Discord/DiscordAuthorization.jsx b/frontend/src/components/AllIntegrations/Discord/DiscordAuthorization.jsx index 62a266665..9baf6df51 100644 --- a/frontend/src/components/AllIntegrations/Discord/DiscordAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Discord/DiscordAuthorization.jsx @@ -3,7 +3,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { getAllServers, handleAuthorize } from './DiscordCommonFunc' import Note from '../../Utilities/Note' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function DiscordAuthorization({ @@ -61,7 +60,7 @@ export default function DiscordAuthorization({ ...{ width: step === 1 && 900 }, ...{ height: step === 1 && 'auto' } }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Dokan/DokanAuthorization.jsx b/frontend/src/components/AllIntegrations/Dokan/DokanAuthorization.jsx index b63102395..508b60391 100644 --- a/frontend/src/components/AllIntegrations/Dokan/DokanAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Dokan/DokanAuthorization.jsx @@ -4,7 +4,6 @@ import { useState } from 'react' import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { dokanAuthentication } from './dokanCommonFunctions' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function DokanAuthorization({ @@ -40,7 +39,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Drip/DripAuthorization.jsx b/frontend/src/components/AllIntegrations/Drip/DripAuthorization.jsx index df6fe73e0..4035be8ef 100644 --- a/frontend/src/components/AllIntegrations/Drip/DripAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Drip/DripAuthorization.jsx @@ -5,7 +5,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { dripAuthentication } from './DripCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' import toast from 'react-hot-toast' @@ -56,7 +55,7 @@ const [isAuthorized, setisAuthorized] = useState(false)
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Dropbox/DropboxAuthorization.jsx b/frontend/src/components/AllIntegrations/Dropbox/DropboxAuthorization.jsx index 4744709a8..d82f8bea4 100644 --- a/frontend/src/components/AllIntegrations/Dropbox/DropboxAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Dropbox/DropboxAuthorization.jsx @@ -3,7 +3,6 @@ import { useState } from 'react' import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { getAllDropboxFolders, handleAuthorize } from './DropboxCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function DropboxAuthorization({ @@ -56,7 +55,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/ElasticEmail/ElasticEmailAuthorization.jsx b/frontend/src/components/AllIntegrations/ElasticEmail/ElasticEmailAuthorization.jsx index d26e69ded..977577ad2 100644 --- a/frontend/src/components/AllIntegrations/ElasticEmail/ElasticEmailAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/ElasticEmail/ElasticEmailAuthorization.jsx @@ -7,8 +7,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { getAllList } from './ElasticEmailCommonFunc' import TutorialLink from '../../Utilities/TutorialLink' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' - export default function ElasticEmailAuthorization({ elasticEmailConf, setElasticEmailConf, @@ -60,7 +58,7 @@ const handleAuthorize = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/EmailOctopus/EmailOctopusAuthorization.jsx b/frontend/src/components/AllIntegrations/EmailOctopus/EmailOctopusAuthorization.jsx index 33b628aea..8cb91ac75 100644 --- a/frontend/src/components/AllIntegrations/EmailOctopus/EmailOctopusAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/EmailOctopus/EmailOctopusAuthorization.jsx @@ -4,7 +4,6 @@ import { useState } from 'react' import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { emailOctopusAuthentication } from './EmailOctopusCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function EmailOctopusAuthorization({ @@ -40,7 +39,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Encharge/EnchargeAuthorization.jsx b/frontend/src/components/AllIntegrations/Encharge/EnchargeAuthorization.jsx index e9bb3fc8d..9a2f23beb 100644 --- a/frontend/src/components/AllIntegrations/Encharge/EnchargeAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Encharge/EnchargeAuthorization.jsx @@ -4,7 +4,6 @@ import bitsFetch from '../../../Utils/bitsFetch' import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { refreshEnchargeHeader } from './EnchargeCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function EnchargeAuthorization({ @@ -61,7 +60,7 @@ const handleAuthorize = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Fabman/FabmanAuthorization.jsx b/frontend/src/components/AllIntegrations/Fabman/FabmanAuthorization.jsx index 4f575a832..5bc149082 100644 --- a/frontend/src/components/AllIntegrations/Fabman/FabmanAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Fabman/FabmanAuthorization.jsx @@ -5,7 +5,6 @@ import { __, sprintf } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { fabmanAuthentication, fetchFabmanWorkspaces } from './FabmanCommonFunc' import Note from '../../Utilities/Note' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' const STEP_ONE_STYLE = { width: 900, height: 'auto' } @@ -41,7 +40,7 @@ export default function FabmanAuthorization({ return (
- +
{__('Integration Name:', 'bit-integrations')}
diff --git a/frontend/src/components/AllIntegrations/FlowMattic/FlowMattic.jsx b/frontend/src/components/AllIntegrations/FlowMattic/FlowMattic.jsx index fe635d96b..5b63db90d 100644 --- a/frontend/src/components/AllIntegrations/FlowMattic/FlowMattic.jsx +++ b/frontend/src/components/AllIntegrations/FlowMattic/FlowMattic.jsx @@ -7,7 +7,6 @@ import Steps from '../../Utilities/Steps' import { saveIntegConfig } from '../IntegrationHelpers/IntegrationHelpers' import WebHooksIntegration from '../IntegrationHelpers/WebHook/WebHooksIntegration' import WebHooksStepTwo from '../IntegrationHelpers/WebHook/WebHooksStepTwo' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' function FlowMattic({ formFields, setFlow, flow, allIntegURL }) { @@ -34,7 +33,7 @@ const [flowMattic, setFlowMattic] = useState({
- + {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/FluentCRM/FluentCrmAuthorization.jsx b/frontend/src/components/AllIntegrations/FluentCRM/FluentCrmAuthorization.jsx index ce899ce77..2eebec83f 100644 --- a/frontend/src/components/AllIntegrations/FluentCRM/FluentCrmAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/FluentCRM/FluentCrmAuthorization.jsx @@ -4,7 +4,6 @@ import { __ } from '../../../Utils/i18nwrap' import bitsFetch from '../../../Utils/bitsFetch' import LoaderSm from '../../Loaders/LoaderSm' import BackIcn from '../../../Icons/BackIcn' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function FluentCrmAuthorization({ @@ -55,7 +54,7 @@ const [isMounted, setIsMounted] = useState(true)
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/FluentCart/FluentCartAuthorization.jsx b/frontend/src/components/AllIntegrations/FluentCart/FluentCartAuthorization.jsx index c02163691..8b1949073 100644 --- a/frontend/src/components/AllIntegrations/FluentCart/FluentCartAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/FluentCart/FluentCartAuthorization.jsx @@ -2,7 +2,6 @@ import { useState } from 'react' import BackIcn from '../../../Icons/BackIcn' import bitsFetch from '../../../Utils/bitsFetch' import { __ } from '../../../Utils/i18nwrap' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import LoaderSm from '../../Loaders/LoaderSm' import TutorialLink from '../../Utilities/TutorialLink' @@ -46,7 +45,7 @@ const authorizeHandler = () => { width: step === 1 && 900, height: step === 1 && 'auto' }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/FluentSupport/FluentSupportAuthorization.jsx b/frontend/src/components/AllIntegrations/FluentSupport/FluentSupportAuthorization.jsx index e97b681fb..65baf1b4b 100644 --- a/frontend/src/components/AllIntegrations/FluentSupport/FluentSupportAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/FluentSupport/FluentSupportAuthorization.jsx @@ -2,7 +2,6 @@ import { useState } from 'react' import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { getCustomFields, handleAuthorize } from './FluentSupportCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function FluentSupportAuthorization({ @@ -43,7 +42,7 @@ const nextPage = () => { ...{ width: step === 1 && 900 }, ...{ height: step === 1 && 'auto' } }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/FreshSales/FreshSalesAuthorization.jsx b/frontend/src/components/AllIntegrations/FreshSales/FreshSalesAuthorization.jsx index b20d45537..dbb35ec97 100644 --- a/frontend/src/components/AllIntegrations/FreshSales/FreshSalesAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/FreshSales/FreshSalesAuthorization.jsx @@ -1,6 +1,5 @@ /* eslint-disable no-unused-expressions */ import { useState } from 'react' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' @@ -58,7 +57,7 @@ const nextPage = () => { ...{ width: step === 1 && 900 }, ...{ height: step === 1 && 'auto' } }}> - +
{__('Bundle Alias(Your Account URL):', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Freshdesk/FreshdeskAuthorization.jsx b/frontend/src/components/AllIntegrations/Freshdesk/FreshdeskAuthorization.jsx index 85fe17a49..26c280cf3 100644 --- a/frontend/src/components/AllIntegrations/Freshdesk/FreshdeskAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Freshdesk/FreshdeskAuthorization.jsx @@ -3,7 +3,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { getAllTicketFields, handleAuthorize } from './FreshdeskCommonFunc' import Note from '../../Utilities/Note' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function FreshdeskAuthorization({ @@ -78,7 +77,7 @@ const nextPage = () => { ...{ width: step === 1 && 900 }, ...{ height: step === 1 && 'auto' } }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/GamiPress/GamiPressAuthorization.jsx b/frontend/src/components/AllIntegrations/GamiPress/GamiPressAuthorization.jsx index 5aade949d..4e18a15d2 100644 --- a/frontend/src/components/AllIntegrations/GamiPress/GamiPressAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/GamiPress/GamiPressAuthorization.jsx @@ -4,7 +4,6 @@ import bitsFetch from '../../../Utils/bitsFetch' import { deepCopy } from '../../../Utils/Helpers' import { __, sprintf } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function GamiPressAuthorization({ @@ -47,7 +46,7 @@ const authorizeHandler = () => { width: step === 1 && 900, height: step === 1 && 'auto' }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/GetResponse/GetResponseAuthorization.jsx b/frontend/src/components/AllIntegrations/GetResponse/GetResponseAuthorization.jsx index ae8ff215c..5faf845dd 100644 --- a/frontend/src/components/AllIntegrations/GetResponse/GetResponseAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/GetResponse/GetResponseAuthorization.jsx @@ -4,7 +4,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { fetchCustomFields, getresponseAuthentication } from './GetResponseCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function GetResponseAuthorization({ @@ -63,7 +62,7 @@ useEffect(() => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Getgist/GetgistAuthorization.jsx b/frontend/src/components/AllIntegrations/Getgist/GetgistAuthorization.jsx index 5b7865506..1103b0190 100644 --- a/frontend/src/components/AllIntegrations/Getgist/GetgistAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Getgist/GetgistAuthorization.jsx @@ -3,7 +3,6 @@ import BackIcn from '../../../Icons/BackIcn' import bitsFetch from '../../../Utils/bitsFetch' import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function GetgistAuthorization({ getgistConf, setGetgistConf, step, setstep, isInfo }) { @@ -52,7 +51,7 @@ const handleAuthorize = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/GiveWp/GiveWpAuthorization.jsx b/frontend/src/components/AllIntegrations/GiveWp/GiveWpAuthorization.jsx index 0df7f4fd7..8d0bcd513 100644 --- a/frontend/src/components/AllIntegrations/GiveWp/GiveWpAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/GiveWp/GiveWpAuthorization.jsx @@ -4,7 +4,6 @@ import bitsFetch from '../../../Utils/bitsFetch' import { deepCopy } from '../../../Utils/Helpers' import { __, sprintf } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function GiveWpAuthorization({ @@ -47,7 +46,7 @@ const authorizeHandler = () => { width: step === 1 && 900, height: step === 1 && 'auto' }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/GoogleCalendar/GoogleCalendarAuthorization.jsx b/frontend/src/components/AllIntegrations/GoogleCalendar/GoogleCalendarAuthorization.jsx index 4bd950bf8..fc94c800d 100644 --- a/frontend/src/components/AllIntegrations/GoogleCalendar/GoogleCalendarAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/GoogleCalendar/GoogleCalendarAuthorization.jsx @@ -6,7 +6,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import CopyText from '../../Utilities/CopyText' import { getAllGoogleCalendarLists, handleAuthorize } from './GoogleCalendarCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function GoogleCalendarAuthorization({ @@ -46,7 +45,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/GoogleContacts/GoogleContactsAuthorization.jsx b/frontend/src/components/AllIntegrations/GoogleContacts/GoogleContactsAuthorization.jsx index 7ca2f6bde..3bc654906 100644 --- a/frontend/src/components/AllIntegrations/GoogleContacts/GoogleContactsAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/GoogleContacts/GoogleContactsAuthorization.jsx @@ -6,7 +6,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import CopyText from '../../Utilities/CopyText' import { handleAuthorize } from './GoogleContactsCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function GoogleContactsAuthorization({ @@ -45,7 +44,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/GoogleDrive/GoogleDriveAuthorization.jsx b/frontend/src/components/AllIntegrations/GoogleDrive/GoogleDriveAuthorization.jsx index 54be78e86..70485a19a 100644 --- a/frontend/src/components/AllIntegrations/GoogleDrive/GoogleDriveAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/GoogleDrive/GoogleDriveAuthorization.jsx @@ -7,8 +7,6 @@ import LoaderSm from '../../Loaders/LoaderSm' import CopyText from '../../Utilities/CopyText' import { getAllGoogleDriveFolders, handleAuthorize } from './GoogleDriveCommonFunc' import TutorialLink from '../../Utilities/TutorialLink' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' - export default function GoogleDriveAuthorization({ flowID, googleDriveConf, @@ -46,7 +44,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/GoogleSheet/GoogleSheetAuthorization.jsx b/frontend/src/components/AllIntegrations/GoogleSheet/GoogleSheetAuthorization.jsx index ed69d906a..ab875e064 100644 --- a/frontend/src/components/AllIntegrations/GoogleSheet/GoogleSheetAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/GoogleSheet/GoogleSheetAuthorization.jsx @@ -6,7 +6,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import CopyText from '../../Utilities/CopyText' import { handleAuthorize, refreshSpreadsheets, tokenHelper } from './GoogleSheetCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' import SelectAuthorizationType from '../../OneClickRadioComponents/SelectAuthorizationType' import AuthorizationAccountList from '../../OneClickRadioComponents/AuthorizationAccountList' @@ -95,7 +94,7 @@ const [authData, setAuthData] = useState([])
- + {selectedAuthType === 'Custom Authorization' && (
diff --git a/frontend/src/components/AllIntegrations/Gravitec/GravitecAuthorization.jsx b/frontend/src/components/AllIntegrations/Gravitec/GravitecAuthorization.jsx index c6dbb2f6b..6167d3165 100644 --- a/frontend/src/components/AllIntegrations/Gravitec/GravitecAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Gravitec/GravitecAuthorization.jsx @@ -5,7 +5,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { gravitecAuthentication } from './GravitecCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function GravitecAuthorization({ @@ -50,7 +49,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Groundhogg/GroundhoggAuthorization.jsx b/frontend/src/components/AllIntegrations/Groundhogg/GroundhoggAuthorization.jsx index 932d11ccf..0aaacb7bb 100644 --- a/frontend/src/components/AllIntegrations/Groundhogg/GroundhoggAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Groundhogg/GroundhoggAuthorization.jsx @@ -5,7 +5,6 @@ import LoaderSm from '../../Loaders/LoaderSm' import CopyText from '../../Utilities/CopyText' import Note from '../../Utilities/Note' import { handleAuthorize, fetchAllTags } from './GroundhoggCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function GroundhoggAuthorization({ @@ -51,7 +50,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/HighLevel/HighLevelAuthorization.jsx b/frontend/src/components/AllIntegrations/HighLevel/HighLevelAuthorization.jsx index 4f50e424e..691771334 100644 --- a/frontend/src/components/AllIntegrations/HighLevel/HighLevelAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/HighLevel/HighLevelAuthorization.jsx @@ -5,7 +5,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { highLevelAuthentication } from './HighLevelCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' import toast from 'react-hot-toast' import { useRecoilValue } from 'recoil' @@ -48,7 +47,7 @@ const [isAuthorized, setisAuthorized] = useState(false)
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Hubspot/HubspotAuthorization.jsx b/frontend/src/components/AllIntegrations/Hubspot/HubspotAuthorization.jsx index 1e82f6def..9bc42f64f 100644 --- a/frontend/src/components/AllIntegrations/Hubspot/HubspotAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Hubspot/HubspotAuthorization.jsx @@ -7,7 +7,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { hubspotAuthorization } from './HubspotCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function HubspotAuthorization({ @@ -57,7 +56,7 @@ const handleInput = e => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/IFTTT/IFTTT.jsx b/frontend/src/components/AllIntegrations/IFTTT/IFTTT.jsx index 2a9c38c2b..91e7458e6 100644 --- a/frontend/src/components/AllIntegrations/IFTTT/IFTTT.jsx +++ b/frontend/src/components/AllIntegrations/IFTTT/IFTTT.jsx @@ -7,7 +7,6 @@ import Steps from '../../Utilities/Steps' import { saveIntegConfig } from '../IntegrationHelpers/IntegrationHelpers' import WebHooksIntegration from '../IntegrationHelpers/WebHook/WebHooksIntegration' import WebHooksStepTwo from '../IntegrationHelpers/WebHook/WebHooksStepTwo' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' function IFTTT({ formFields, setFlow, flow, allIntegURL }) { @@ -34,7 +33,7 @@ const [ifttt, setIfttt] = useState({
- + {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Integrately/Integrately.jsx b/frontend/src/components/AllIntegrations/Integrately/Integrately.jsx index 289d17ae3..59475b8ca 100644 --- a/frontend/src/components/AllIntegrations/Integrately/Integrately.jsx +++ b/frontend/src/components/AllIntegrations/Integrately/Integrately.jsx @@ -7,7 +7,6 @@ import Steps from '../../Utilities/Steps' import { saveIntegConfig } from '../IntegrationHelpers/IntegrationHelpers' import WebHooksIntegration from '../IntegrationHelpers/WebHook/WebHooksIntegration' import WebHooksStepTwo from '../IntegrationHelpers/WebHook/WebHooksStepTwo' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' function Integrately({ formFields, setFlow, flow, allIntegURL }) { @@ -35,7 +34,7 @@ const [integrately, setIntegrately] = useState({
- + - +
{__('Integration Name', 'bit-integrations')}
diff --git a/frontend/src/components/AllIntegrations/Integromat/Integromat.jsx b/frontend/src/components/AllIntegrations/Integromat/Integromat.jsx index ffd1caf0a..2eba42906 100644 --- a/frontend/src/components/AllIntegrations/Integromat/Integromat.jsx +++ b/frontend/src/components/AllIntegrations/Integromat/Integromat.jsx @@ -7,7 +7,6 @@ import Steps from '../../Utilities/Steps' import { saveIntegConfig } from '../IntegrationHelpers/IntegrationHelpers' import WebHooksIntegration from '../IntegrationHelpers/WebHook/WebHooksIntegration' import WebHooksStepTwo from '../IntegrationHelpers/WebHook/WebHooksStepTwo' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' function Integromat({ formFields, setFlow, flow, allIntegURL }) { @@ -35,7 +34,7 @@ const [integromat, setIntegromat] = useState({
- + {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Keap/KeapAuthorization.jsx b/frontend/src/components/AllIntegrations/Keap/KeapAuthorization.jsx index 936f48109..d56943908 100644 --- a/frontend/src/components/AllIntegrations/Keap/KeapAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Keap/KeapAuthorization.jsx @@ -6,7 +6,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import CopyText from '../../Utilities/CopyText' import { handleAuthorize, refreshCustomFields } from './KeapCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function KeapAuthorization({ @@ -45,7 +44,7 @@ export default function KeapAuthorization({
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/KirimEmail/KirimEmailAuthorization.jsx b/frontend/src/components/AllIntegrations/KirimEmail/KirimEmailAuthorization.jsx index 02da0323e..b8a4923d1 100644 --- a/frontend/src/components/AllIntegrations/KirimEmail/KirimEmailAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/KirimEmail/KirimEmailAuthorization.jsx @@ -2,7 +2,6 @@ import { useState } from 'react' import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { handleAuthorize } from './KirimEmailCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function KirmilEmailAuthorization({ @@ -42,7 +41,7 @@ const nextPage = () => { ...{ width: step === 1 && 900 }, ...{ height: step === 1 && 'auto' } }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Klaviyo/KlaviyoAuthorization.jsx b/frontend/src/components/AllIntegrations/Klaviyo/KlaviyoAuthorization.jsx index c9fec2dba..b9fb7713f 100644 --- a/frontend/src/components/AllIntegrations/Klaviyo/KlaviyoAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Klaviyo/KlaviyoAuthorization.jsx @@ -3,7 +3,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { handleAuthorize } from './KlaviyoCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' function KlaviyoAuthorization({ @@ -57,7 +56,7 @@ const handleInput = e => {
- +
diff --git a/frontend/src/components/AllIntegrations/KonnectzIT/KonnectzIT.jsx b/frontend/src/components/AllIntegrations/KonnectzIT/KonnectzIT.jsx index abe1c0a41..187e613e2 100644 --- a/frontend/src/components/AllIntegrations/KonnectzIT/KonnectzIT.jsx +++ b/frontend/src/components/AllIntegrations/KonnectzIT/KonnectzIT.jsx @@ -7,7 +7,6 @@ import Steps from '../../Utilities/Steps' import { saveIntegConfig } from '../IntegrationHelpers/IntegrationHelpers' import WebHooksIntegration from '../IntegrationHelpers/WebHook/WebHooksIntegration' import WebHooksStepTwo from '../IntegrationHelpers/WebHook/WebHooksStepTwo' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' function KonnectzIT({ formFields, setFlow, flow, allIntegURL }) { @@ -35,7 +34,7 @@ const [konnectzIT, setKonnectzIT] = useState({
- + - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/LearnDash/LearnDashAuthorization.jsx b/frontend/src/components/AllIntegrations/LearnDash/LearnDashAuthorization.jsx index a69f4446d..f400fe4eb 100644 --- a/frontend/src/components/AllIntegrations/LearnDash/LearnDashAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/LearnDash/LearnDashAuthorization.jsx @@ -4,7 +4,6 @@ import bitsFetch from '../../../Utils/bitsFetch' import { deepCopy } from '../../../Utils/Helpers' import { __, sprintf } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function LearnDashAuthorization({ @@ -48,7 +47,7 @@ const authorizeHandler = () => { width: step === 1 && 900, height: step === 1 && 'auto' }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Lemlist/LemlistAuthorization.jsx b/frontend/src/components/AllIntegrations/Lemlist/LemlistAuthorization.jsx index 02714e07f..eb6a09d8c 100644 --- a/frontend/src/components/AllIntegrations/Lemlist/LemlistAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Lemlist/LemlistAuthorization.jsx @@ -6,7 +6,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { refreshLemlistCampaign } from './LemlistCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function LemlistAuthorization({ @@ -91,7 +90,7 @@ const handleAuthorize = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/LifterLms/LifterLmsAuthorization.jsx b/frontend/src/components/AllIntegrations/LifterLms/LifterLmsAuthorization.jsx index c06f80b13..4c700ce73 100644 --- a/frontend/src/components/AllIntegrations/LifterLms/LifterLmsAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/LifterLms/LifterLmsAuthorization.jsx @@ -4,7 +4,6 @@ import bitsFetch from '../../../Utils/bitsFetch' import { deepCopy } from '../../../Utils/Helpers' import { __, sprintf } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function LifterLmsAuthorization({ @@ -47,7 +46,7 @@ const authorizeHandler = () => { width: step === 1 && 900, height: step === 1 && 'auto' }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Line/LineAuthorization.jsx b/frontend/src/components/AllIntegrations/Line/LineAuthorization.jsx index 1c3a4a683..f73e8d6c8 100644 --- a/frontend/src/components/AllIntegrations/Line/LineAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Line/LineAuthorization.jsx @@ -3,7 +3,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { handleAuthorize } from './LineCommonFunc' import Note from '../../Utilities/Note' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function LineAuthorization({ @@ -44,7 +43,7 @@ const nextPage = () => { ...{ width: step === 1 && 900 }, ...{ height: step === 1 && 'auto' } }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/LionDesk/LionDeskAuthorization.jsx b/frontend/src/components/AllIntegrations/LionDesk/LionDeskAuthorization.jsx index 508ddc95e..34ac54b7f 100644 --- a/frontend/src/components/AllIntegrations/LionDesk/LionDeskAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/LionDesk/LionDeskAuthorization.jsx @@ -9,8 +9,6 @@ import CopyText from '../../Utilities/CopyText' import Note from '../../Utilities/Note' import { handleAuthorize } from './LionDeskCommonFunc' import TutorialLink from '../../Utilities/TutorialLink' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' - export default function LionDeskAuthorization({ lionDeskConf, setLionDeskConf, @@ -58,7 +56,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Livestorm/LivestormAuthorization.jsx b/frontend/src/components/AllIntegrations/Livestorm/LivestormAuthorization.jsx index 75bd1fa0d..e528debd9 100644 --- a/frontend/src/components/AllIntegrations/Livestorm/LivestormAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Livestorm/LivestormAuthorization.jsx @@ -5,7 +5,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { getAllEvents, livestormAuthentication } from './LivestormCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function LivestormAuthorization({ @@ -52,7 +51,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Mail/Mail.jsx b/frontend/src/components/AllIntegrations/Mail/Mail.jsx index 113484ce3..4bd19f778 100644 --- a/frontend/src/components/AllIntegrations/Mail/Mail.jsx +++ b/frontend/src/components/AllIntegrations/Mail/Mail.jsx @@ -6,7 +6,6 @@ import { useRecoilState, useRecoilValue } from 'recoil' import { $actionConf, $appConfigState, $formFields, $newFlow } from '../../../GlobalStates' import { __ } from '../../../Utils/i18nwrap' import { SmartTagField } from '../../../Utils/StaticData/SmartTagField' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import ConditionalLogic from '../../ConditionalLogic' import LoaderSm from '../../Loaders/LoaderSm' import DropDown from '../../Utilities/DropDown' @@ -171,7 +170,7 @@ const btcbi = useRecoilValue($appConfigState) return (
- + {__('Integration Name', 'bit-integration')} {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/MailChimp/MailChimpAuthorization.jsx b/frontend/src/components/AllIntegrations/MailChimp/MailChimpAuthorization.jsx index 401458bf3..0ead95f79 100644 --- a/frontend/src/components/AllIntegrations/MailChimp/MailChimpAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/MailChimp/MailChimpAuthorization.jsx @@ -4,7 +4,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import CopyText from '../../Utilities/CopyText' import { handleMailChimpAuthorize, refreshAudience, refreshModules } from './MailChimpCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function MailChimpAuthorization({ @@ -42,7 +41,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/MailMint/MailMintAuthorization.jsx b/frontend/src/components/AllIntegrations/MailMint/MailMintAuthorization.jsx index 1a145c454..569f7a64d 100644 --- a/frontend/src/components/AllIntegrations/MailMint/MailMintAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/MailMint/MailMintAuthorization.jsx @@ -5,7 +5,6 @@ import { deepCopy } from '../../../Utils/Helpers' import { __, sprintf } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { getAllList, getAllTags, mailMintRefreshFields } from './MailMintCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function MailMintAuthorization({ @@ -51,7 +50,7 @@ const authorizeHandler = () => { width: step === 1 && 900, height: step === 1 && 'auto' }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/MailPoet/MailPoetAuthorization.jsx b/frontend/src/components/AllIntegrations/MailPoet/MailPoetAuthorization.jsx index 691f0e497..2f91e5f4b 100644 --- a/frontend/src/components/AllIntegrations/MailPoet/MailPoetAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/MailPoet/MailPoetAuthorization.jsx @@ -3,7 +3,6 @@ import { __ } from '../../../Utils/i18nwrap' import bitsFetch from '../../../Utils/bitsFetch' import LoaderSm from '../../Loaders/LoaderSm' import BackIcn from '../../../Icons/BackIcn' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function MailPoetAuthorization({ @@ -43,7 +42,7 @@ const handleAuthorize = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/MailRelay/MailRelayAuthorization.jsx b/frontend/src/components/AllIntegrations/MailRelay/MailRelayAuthorization.jsx index 4fe85c025..a1f1711a1 100644 --- a/frontend/src/components/AllIntegrations/MailRelay/MailRelayAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/MailRelay/MailRelayAuthorization.jsx @@ -4,7 +4,6 @@ import { useState } from 'react' import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { mailRelayAuthentication } from './MailRelayCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function MailRelayAuthorization({ @@ -40,7 +39,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/MailerLite/MailerLiteAuthorization.jsx b/frontend/src/components/AllIntegrations/MailerLite/MailerLiteAuthorization.jsx index 46cd780a2..fb5af28b0 100644 --- a/frontend/src/components/AllIntegrations/MailerLite/MailerLiteAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/MailerLite/MailerLiteAuthorization.jsx @@ -1,7 +1,6 @@ /* eslint-disable no-unused-expressions */ import { useState } from 'react' import { __ } from '../../../Utils/i18nwrap' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import TutorialLink from '../../Utilities/TutorialLink' @@ -57,7 +56,7 @@ const url =
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/MailerPress/MailerPressAuthorization.jsx b/frontend/src/components/AllIntegrations/MailerPress/MailerPressAuthorization.jsx index c2d850bc8..7403142ec 100644 --- a/frontend/src/components/AllIntegrations/MailerPress/MailerPressAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/MailerPress/MailerPressAuthorization.jsx @@ -2,7 +2,6 @@ import { useState } from 'react' import BackIcn from '../../../Icons/BackIcn' import bitsFetch from '../../../Utils/bitsFetch' import { __ } from '../../../Utils/i18nwrap' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import LoaderSm from '../../Loaders/LoaderSm' import TutorialLink from '../../Utilities/TutorialLink' @@ -46,7 +45,7 @@ const authorizeHandler = () => { width: step === 1 && 900, height: step === 1 && 'auto' }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Mailercloud/MailercloudAuthorization.jsx b/frontend/src/components/AllIntegrations/Mailercloud/MailercloudAuthorization.jsx index 855e0197d..9f0649ef6 100644 --- a/frontend/src/components/AllIntegrations/Mailercloud/MailercloudAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Mailercloud/MailercloudAuthorization.jsx @@ -6,7 +6,6 @@ import Input from '../../Utilities/Input' import Note from '../../Utilities/Note' import StepPage from '../../Utilities/StepPage' import { getAllLists, handleAuthorize, handleInput } from './MailercloudCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' import { __ } from '../../../Utils/i18nwrap' @@ -55,7 +54,7 @@ const nextPage = async () => { return ( - +
{/* Mailercloud Authorization */} diff --git a/frontend/src/components/AllIntegrations/Mailify/MailifyAuthorization.jsx b/frontend/src/components/AllIntegrations/Mailify/MailifyAuthorization.jsx index 55273b2ca..16575859a 100644 --- a/frontend/src/components/AllIntegrations/Mailify/MailifyAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Mailify/MailifyAuthorization.jsx @@ -6,7 +6,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { refreshMailifyList } from './MailifyCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function MailifyAuthorization({ @@ -100,7 +99,7 @@ const [isAuthorized, setisAuthorized] = useState(false)
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Mailjet/MailjetAuthorization.jsx b/frontend/src/components/AllIntegrations/Mailjet/MailjetAuthorization.jsx index f2bf9cb19..593b8dd98 100644 --- a/frontend/src/components/AllIntegrations/Mailjet/MailjetAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Mailjet/MailjetAuthorization.jsx @@ -4,7 +4,6 @@ import { useState } from 'react' import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { mailjetAuthentication } from './MailjetCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function MailjetAuthorization({ @@ -40,7 +39,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Mailster/MailsterAuthorization.jsx b/frontend/src/components/AllIntegrations/Mailster/MailsterAuthorization.jsx index 70b340e8e..ae70c11c9 100644 --- a/frontend/src/components/AllIntegrations/Mailster/MailsterAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Mailster/MailsterAuthorization.jsx @@ -4,7 +4,6 @@ import { useState } from 'react' import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { mailsterAuthentication } from './MailsterCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function MailsterAuthorization({ @@ -43,7 +42,7 @@ const nextPage = () => { ...{ width: step === 1 && 900 }, ...{ height: step === 1 && 'auto' } }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Mailup/MailupAuthorization.jsx b/frontend/src/components/AllIntegrations/Mailup/MailupAuthorization.jsx index 4df8c25d4..41b57e298 100644 --- a/frontend/src/components/AllIntegrations/Mailup/MailupAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Mailup/MailupAuthorization.jsx @@ -4,7 +4,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import CopyText from '../../Utilities/CopyText' import { handleMailupAuthorize, fetchAllList } from './MailupCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function MailupAuthorization({ @@ -42,7 +41,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/MasterStudyLms/MasterStudyLms.jsx b/frontend/src/components/AllIntegrations/MasterStudyLms/MasterStudyLms.jsx index 2994fa020..fb8967705 100644 --- a/frontend/src/components/AllIntegrations/MasterStudyLms/MasterStudyLms.jsx +++ b/frontend/src/components/AllIntegrations/MasterStudyLms/MasterStudyLms.jsx @@ -11,7 +11,6 @@ import IntegrationStepThree from '../IntegrationHelpers/IntegrationStepThree' import { handleInput, checkMappedFields } from './MasterStudyLmsCommonFunc' import MasterStudyLmsAuthorization from './MasterStudyLmsAuthorization' import MasterStudyLmsIntegLayout from './MasterStudyLmsIntegLayout' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' function MasterStudyLms({ formFields, setFlow, flow, allIntegURL, isInfo, edit }) { diff --git a/frontend/src/components/AllIntegrations/MasterStudyLms/MasterStudyLmsAuthorization.jsx b/frontend/src/components/AllIntegrations/MasterStudyLms/MasterStudyLmsAuthorization.jsx index 1248280ee..7892fab5c 100644 --- a/frontend/src/components/AllIntegrations/MasterStudyLms/MasterStudyLmsAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/MasterStudyLms/MasterStudyLmsAuthorization.jsx @@ -5,8 +5,6 @@ import { deepCopy } from '../../../Utils/Helpers' import { __, sprintf } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import TutorialLink from '../../Utilities/TutorialLink' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' - export default function MasterStudyLmsAuthorization({ formID, msLmsConf, @@ -47,7 +45,7 @@ const authorizeHandler = () => { width: step === 1 && 900, height: step === 1 && 'auto' }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Mautic/MauticAuthorization.jsx b/frontend/src/components/AllIntegrations/Mautic/MauticAuthorization.jsx index e7ca87081..d52f291d2 100644 --- a/frontend/src/components/AllIntegrations/Mautic/MauticAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Mautic/MauticAuthorization.jsx @@ -5,8 +5,6 @@ import LoaderSm from '../../Loaders/LoaderSm' import CopyText from '../../Utilities/CopyText' import { handleMauticAuthorize, getAllFields } from './MauticCommonFunc' import TutorialLink from '../../Utilities/TutorialLink' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' - export default function MauticAuthorization({ mauticConf, setMauticConf, @@ -41,7 +39,7 @@ export default function MauticAuthorization({
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Memberpress/MemberpressAuthorization.jsx b/frontend/src/components/AllIntegrations/Memberpress/MemberpressAuthorization.jsx index 15ec26acb..dbe68e998 100644 --- a/frontend/src/components/AllIntegrations/Memberpress/MemberpressAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Memberpress/MemberpressAuthorization.jsx @@ -5,7 +5,6 @@ import { deepCopy } from '../../../Utils/Helpers' import { __, sprintf } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { getAllMemberShip, paymentGateway } from './MemberpressCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function MemberpressAuthorization({ @@ -51,7 +50,7 @@ const authorizeHandler = () => { width: step === 1 && 900, height: step === 1 && 'auto' }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Moosend/MoosendAuthorization.jsx b/frontend/src/components/AllIntegrations/Moosend/MoosendAuthorization.jsx index cbfc5436a..67316b7a2 100644 --- a/frontend/src/components/AllIntegrations/Moosend/MoosendAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Moosend/MoosendAuthorization.jsx @@ -6,7 +6,6 @@ import Input from '../../Utilities/Input' import Note from '../../Utilities/Note' import StepPage from '../../Utilities/StepPage' import { getAllLists, handleAuthorize, handleInput } from './MoosendCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' import { __ } from '../../../Utils/i18nwrap' @@ -50,7 +49,7 @@ function MoosendAuthorization({ return ( - +
{/* Moosend Authorization */} diff --git a/frontend/src/components/AllIntegrations/MoxieCRM/MoxieCRMAuthorization.jsx b/frontend/src/components/AllIntegrations/MoxieCRM/MoxieCRMAuthorization.jsx index 439b1da09..18460e669 100644 --- a/frontend/src/components/AllIntegrations/MoxieCRM/MoxieCRMAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/MoxieCRM/MoxieCRMAuthorization.jsx @@ -5,7 +5,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { moxiecrmAuthentication } from './MoxieCRMCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function MoxieCRMAuthorization({ @@ -50,7 +49,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/N8n/N8n.jsx b/frontend/src/components/AllIntegrations/N8n/N8n.jsx index 856f61f23..4c1802acf 100644 --- a/frontend/src/components/AllIntegrations/N8n/N8n.jsx +++ b/frontend/src/components/AllIntegrations/N8n/N8n.jsx @@ -7,7 +7,6 @@ import Steps from '../../Utilities/Steps' import { saveIntegConfig } from '../IntegrationHelpers/IntegrationHelpers' import WebHooksIntegration from '../IntegrationHelpers/WebHook/WebHooksIntegration' import WebHooksStepTwo from '../IntegrationHelpers/WebHook/WebHooksStepTwo' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' function N8n({ formFields, setFlow, flow, allIntegURL }) { @@ -35,7 +34,7 @@ const [n8n, setN8n] = useState({
- + {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Nimble/NimbleAuthorization.jsx b/frontend/src/components/AllIntegrations/Nimble/NimbleAuthorization.jsx index 7e544e86f..4ffda11f3 100644 --- a/frontend/src/components/AllIntegrations/Nimble/NimbleAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Nimble/NimbleAuthorization.jsx @@ -5,7 +5,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { getAllFields, nimbleAuthentication } from './NimbleCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function NimbleAuthorization({ @@ -51,7 +50,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/NinjaTables/NinjaTablesAuthorization.jsx b/frontend/src/components/AllIntegrations/NinjaTables/NinjaTablesAuthorization.jsx index 6051107f3..ea479e079 100644 --- a/frontend/src/components/AllIntegrations/NinjaTables/NinjaTablesAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/NinjaTables/NinjaTablesAuthorization.jsx @@ -1,7 +1,6 @@ import { useState } from 'react' import bitsFetch from '../../../Utils/bitsFetch' import { __ } from '../../../Utils/i18nwrap' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import LoaderSm from '../../Loaders/LoaderSm' import TutorialLink from '../../Utilities/TutorialLink' diff --git a/frontend/src/components/AllIntegrations/NotificationX/NotificationXAuthorization.jsx b/frontend/src/components/AllIntegrations/NotificationX/NotificationXAuthorization.jsx index a3764a079..7213600f5 100644 --- a/frontend/src/components/AllIntegrations/NotificationX/NotificationXAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/NotificationX/NotificationXAuthorization.jsx @@ -1,6 +1,5 @@ import { useState } from 'react' import { __ } from '../../../Utils/i18nwrap' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import TutorialLink from '../../Utilities/TutorialLink' @@ -28,7 +27,7 @@ const handleInput = e => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Notion/NotionAuthorization.jsx b/frontend/src/components/AllIntegrations/Notion/NotionAuthorization.jsx index e6220e188..bf68b575e 100644 --- a/frontend/src/components/AllIntegrations/Notion/NotionAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Notion/NotionAuthorization.jsx @@ -8,7 +8,6 @@ import Input from '../../Utilities/Input' import Note from '../../Utilities/Note' import StepPage from '../../Utilities/StepPage' import { getAllDatabaseLists, handleAuthorize, handleInput } from './NotionCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' import { __ } from '../../../Utils/i18nwrap' @@ -51,7 +50,7 @@ const nextPage = async () => { ` return ( - +
{/* Notion Authorization */} diff --git a/frontend/src/components/AllIntegrations/NutshellCRM/NutshellCRMAuthorization.jsx b/frontend/src/components/AllIntegrations/NutshellCRM/NutshellCRMAuthorization.jsx index 1f1b1fafb..1893afe4f 100644 --- a/frontend/src/components/AllIntegrations/NutshellCRM/NutshellCRMAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/NutshellCRM/NutshellCRMAuthorization.jsx @@ -6,7 +6,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { nutshellCRMAuthentication } from './NutshellCRMCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function NutshellCRMAuthorization({ @@ -52,7 +51,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/OmniSend/OmniSendAuthorization.jsx b/frontend/src/components/AllIntegrations/OmniSend/OmniSendAuthorization.jsx index 4db277038..5dc9a1872 100644 --- a/frontend/src/components/AllIntegrations/OmniSend/OmniSendAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/OmniSend/OmniSendAuthorization.jsx @@ -4,7 +4,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { handleOmniSendAuthorize } from './OmniSendCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function OmniSendAuthorization({ @@ -59,7 +58,7 @@ const nextPage = () => { ...{ width: step === 1 && 900 }, ...{ height: step === 1 && 'auto' } }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/OneDrive/OneDriveAuthorization.jsx b/frontend/src/components/AllIntegrations/OneDrive/OneDriveAuthorization.jsx index af07d0488..1ec2843e9 100644 --- a/frontend/src/components/AllIntegrations/OneDrive/OneDriveAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/OneDrive/OneDriveAuthorization.jsx @@ -6,7 +6,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import CopyText from '../../Utilities/CopyText' import { getAllOneDriveFolders, handleAuthorize } from './OneDriveCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function OneDriveAuthorization({ @@ -46,7 +45,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/OneHashCRM/OneHashCRMAuthorization.jsx b/frontend/src/components/AllIntegrations/OneHashCRM/OneHashCRMAuthorization.jsx index ed592a6ba..6706c23ac 100644 --- a/frontend/src/components/AllIntegrations/OneHashCRM/OneHashCRMAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/OneHashCRM/OneHashCRMAuthorization.jsx @@ -6,7 +6,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { oneHashCRMAuthentication } from './OneHashCRMCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function OneHashCRMAuthorization({ @@ -59,7 +58,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/PCloud/PCloudAuthorization.jsx b/frontend/src/components/AllIntegrations/PCloud/PCloudAuthorization.jsx index 5aff8489a..de12b5aea 100644 --- a/frontend/src/components/AllIntegrations/PCloud/PCloudAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/PCloud/PCloudAuthorization.jsx @@ -7,7 +7,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import CopyText from '../../Utilities/CopyText' import { getAllPCloudFolders, handleAuthorization } from './PCloudCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function PCloudAuthorization({ @@ -47,7 +46,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Pabbly/Pabbly.jsx b/frontend/src/components/AllIntegrations/Pabbly/Pabbly.jsx index 3245b78a2..42823b915 100644 --- a/frontend/src/components/AllIntegrations/Pabbly/Pabbly.jsx +++ b/frontend/src/components/AllIntegrations/Pabbly/Pabbly.jsx @@ -7,7 +7,6 @@ import Steps from '../../Utilities/Steps' import { saveIntegConfig } from '../IntegrationHelpers/IntegrationHelpers' import WebHooksIntegration from '../IntegrationHelpers/WebHook/WebHooksIntegration' import WebHooksStepTwo from '../IntegrationHelpers/WebHook/WebHooksStepTwo' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' function Pabbly({ formFields, setFlow, flow, allIntegURL }) { @@ -35,7 +34,7 @@ const [pabbly, setPabbly] = useState({
- + { width: step === 1 && 900, height: step === 1 && 'auto' }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/PerfexCRM/PerfexCRMAuthorization.jsx b/frontend/src/components/AllIntegrations/PerfexCRM/PerfexCRMAuthorization.jsx index e5966be57..d16fd8f9c 100644 --- a/frontend/src/components/AllIntegrations/PerfexCRM/PerfexCRMAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/PerfexCRM/PerfexCRMAuthorization.jsx @@ -7,8 +7,6 @@ import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { perfexCRMAuthentication } from './PerfexCRMCommonFunc' import TutorialLink from '../../Utilities/TutorialLink' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' - export default function PerfexCRMAuthorization({ perfexCRMConf, setPerfexCRMConf, @@ -69,7 +67,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/PipeDrive/PipeDriveAuthorization.jsx b/frontend/src/components/AllIntegrations/PipeDrive/PipeDriveAuthorization.jsx index 4dd2dc61e..9f3b0e7da 100644 --- a/frontend/src/components/AllIntegrations/PipeDrive/PipeDriveAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/PipeDrive/PipeDriveAuthorization.jsx @@ -4,7 +4,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { handleAuthorize } from './PipeDriveCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function PipeDriveAuthorization({ @@ -55,7 +54,7 @@ const nextPage = () => { ...{ width: step === 1 && 900 }, ...{ height: step === 1 && 'auto' } }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Pods/Pods.jsx b/frontend/src/components/AllIntegrations/Pods/Pods.jsx index 29b66a204..c6c66483a 100644 --- a/frontend/src/components/AllIntegrations/Pods/Pods.jsx +++ b/frontend/src/components/AllIntegrations/Pods/Pods.jsx @@ -11,7 +11,6 @@ import { postFields } from '../../../Utils/StaticData/postField' import LoaderSm from '../../Loaders/LoaderSm' import TableCheckBox from '../../Utilities/TableCheckBox' import ConditionalLogic from '../../ConditionalLogic' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' function Pods({ formFields, setFlow, flow, allIntegURL }) { @@ -119,7 +118,7 @@ const [podsConf, setPodsConf] = useState({ return (
- +
{__('Integration Name', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/PostCreation/Post.jsx b/frontend/src/components/AllIntegrations/PostCreation/Post.jsx index 0f50fc30d..1cc474282 100644 --- a/frontend/src/components/AllIntegrations/PostCreation/Post.jsx +++ b/frontend/src/components/AllIntegrations/PostCreation/Post.jsx @@ -22,7 +22,6 @@ import FieldMap from './FieldMap' import bitsFetch from '../../../Utils/bitsFetch' import { saveIntegConfig } from '../IntegrationHelpers/IntegrationHelpers' import IntegrationStepThree from '../IntegrationHelpers/IntegrationStepThree' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' import MultiSelect from 'react-multiple-select-dropdown-lite' import 'react-multiple-select-dropdown-lite/dist/index.css' @@ -193,7 +192,7 @@ function Post({ formFields, setFlow, flow, allIntegURL }) { return (
- +
diff --git a/frontend/src/components/AllIntegrations/PropovoiceCRM/PropovoiceCrmAuthorization.jsx b/frontend/src/components/AllIntegrations/PropovoiceCRM/PropovoiceCrmAuthorization.jsx index 7e9d18ef6..e084592ef 100644 --- a/frontend/src/components/AllIntegrations/PropovoiceCRM/PropovoiceCrmAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/PropovoiceCRM/PropovoiceCrmAuthorization.jsx @@ -4,7 +4,6 @@ import bitsFetch from '../../../Utils/bitsFetch' import { deepCopy } from '../../../Utils/Helpers' import { __, sprintf } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function PropovoiceCrmAuthorization({ @@ -47,7 +46,7 @@ const authorizeHandler = () => { width: step === 1 && 900, height: step === 1 && 'auto' }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Rapidmail/RapidmailAuthorization.jsx b/frontend/src/components/AllIntegrations/Rapidmail/RapidmailAuthorization.jsx index dff743527..a1057c8ec 100644 --- a/frontend/src/components/AllIntegrations/Rapidmail/RapidmailAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Rapidmail/RapidmailAuthorization.jsx @@ -4,7 +4,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { getAllRecipient, handleAuthorize } from './RapidmailCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function RapidmailAuthorization({ @@ -59,7 +58,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Registration/EditRegistration.jsx b/frontend/src/components/AllIntegrations/Registration/EditRegistration.jsx index 5160254a6..159fb7e45 100644 --- a/frontend/src/components/AllIntegrations/Registration/EditRegistration.jsx +++ b/frontend/src/components/AllIntegrations/Registration/EditRegistration.jsx @@ -25,7 +25,6 @@ import TableCheckBox from '../../Utilities/TableCheckBox' import ConditionalLogic from '../../ConditionalLogic' import Note from '../../Utilities/Note' import RegistrationActions from './RegistrationActions' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function EditRegistration({ allIntegURL }) { @@ -130,7 +129,7 @@ export default function EditRegistration({ allIntegURL }) { return (
- +

diff --git a/frontend/src/components/AllIntegrations/Registration/Registration.jsx b/frontend/src/components/AllIntegrations/Registration/Registration.jsx index fc670ceec..6ddfc3d69 100644 --- a/frontend/src/components/AllIntegrations/Registration/Registration.jsx +++ b/frontend/src/components/AllIntegrations/Registration/Registration.jsx @@ -19,7 +19,6 @@ import LoaderSm from '../../Loaders/LoaderSm' import ConditionalLogic from '../../ConditionalLogic' import TableCheckBox from '../../Utilities/TableCheckBox' import Note from '../../Utilities/Note' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' import RegistrationActions from './RegistrationActions' @@ -130,7 +129,7 @@ export default function Registration({ formFields, setFlow, flow, allIntegURL }) return (
- +
{' '}
diff --git a/frontend/src/components/AllIntegrations/RestrictContent/RestrictContentAuthorization.jsx b/frontend/src/components/AllIntegrations/RestrictContent/RestrictContentAuthorization.jsx index 8ebcfd399..382fad49f 100644 --- a/frontend/src/components/AllIntegrations/RestrictContent/RestrictContentAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/RestrictContent/RestrictContentAuthorization.jsx @@ -6,8 +6,6 @@ import { __, sprintf } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { getAllLevels } from './RestrictContentCommonFunc' import TutorialLink from '../../Utilities/TutorialLink' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' - export default function RestrictContentAuthorization({ formID, restrictConf, @@ -55,7 +53,7 @@ const authorizeHandler = () => { width: step === 1 && 900, height: step === 1 && 'auto' }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Salesflare/SalesflareAuthorization.jsx b/frontend/src/components/AllIntegrations/Salesflare/SalesflareAuthorization.jsx index 4b1194012..c1bcbed08 100644 --- a/frontend/src/components/AllIntegrations/Salesflare/SalesflareAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Salesflare/SalesflareAuthorization.jsx @@ -5,7 +5,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { salesflareAuthentication } from './SalesflareCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function SalesflareAuthorization({ @@ -49,7 +48,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Salesforce/SalesforceAuthorization.jsx b/frontend/src/components/AllIntegrations/Salesforce/SalesforceAuthorization.jsx index 5e13bd392..2f10298d3 100644 --- a/frontend/src/components/AllIntegrations/Salesforce/SalesforceAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Salesforce/SalesforceAuthorization.jsx @@ -4,7 +4,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import CopyText from '../../Utilities/CopyText' import { handleAuthorize } from './SalesforceCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' import { $appConfigState } from '../../../GlobalStates' import { useRecoilValue } from 'recoil' @@ -51,7 +50,7 @@ const nextPage = () => { ...{ width: step === 1 && 900 }, ...{ height: step === 1 && 'auto' } }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Salesmate/SalesmateAuthorization.jsx b/frontend/src/components/AllIntegrations/Salesmate/SalesmateAuthorization.jsx index 1dcc9b7d0..0cf1f0c54 100644 --- a/frontend/src/components/AllIntegrations/Salesmate/SalesmateAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Salesmate/SalesmateAuthorization.jsx @@ -6,7 +6,6 @@ import LoaderSm from '../../Loaders/LoaderSm' import { salesmateAuthentication } from './SalesmateCommonFunc' import Note from '../../Utilities/Note' import { toast } from 'react-hot-toast' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function SalesmateAuthorization({ @@ -64,7 +63,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Selzy/SelzyAuthorization.jsx b/frontend/src/components/AllIntegrations/Selzy/SelzyAuthorization.jsx index b83e0f78f..7ad43d1a7 100644 --- a/frontend/src/components/AllIntegrations/Selzy/SelzyAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Selzy/SelzyAuthorization.jsx @@ -6,7 +6,6 @@ import Input from '../../Utilities/Input' import Note from '../../Utilities/Note' import StepPage from '../../Utilities/StepPage' import { getAllTags, handleAuthorize, handleInput } from './SelzyCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' import { __ } from '../../../Utils/i18nwrap' @@ -47,7 +46,7 @@ const nextPage = async () => { return ( - +
{/* SelzyAuthorization */} diff --git a/frontend/src/components/AllIntegrations/SendFox/SendFoxAuthorization.jsx b/frontend/src/components/AllIntegrations/SendFox/SendFoxAuthorization.jsx index 33cf5eac8..8764f14e8 100644 --- a/frontend/src/components/AllIntegrations/SendFox/SendFoxAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/SendFox/SendFoxAuthorization.jsx @@ -4,7 +4,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import CopyText from '../../Utilities/CopyText' import { handleAuthorize } from './SendFoxCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function SendFoxAuthorization({ @@ -43,7 +42,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/SendGrid/SendGridAuthorization.jsx b/frontend/src/components/AllIntegrations/SendGrid/SendGridAuthorization.jsx index 5286746c0..b0e0eddb2 100644 --- a/frontend/src/components/AllIntegrations/SendGrid/SendGridAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/SendGrid/SendGridAuthorization.jsx @@ -4,7 +4,6 @@ import { useState } from 'react' import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { sendGridAuthentication } from './SendGridCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function SendGridAuthorization({ @@ -40,7 +39,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/SendPulse/SendPulseAuthorization.jsx b/frontend/src/components/AllIntegrations/SendPulse/SendPulseAuthorization.jsx index 41a6d7c34..158c60935 100644 --- a/frontend/src/components/AllIntegrations/SendPulse/SendPulseAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/SendPulse/SendPulseAuthorization.jsx @@ -6,7 +6,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { refreshSendPulseList } from './SendPulseCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function SendPulseAuthorization({ @@ -92,7 +91,7 @@ const handleAuthorize = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/SendinBlue/SendinBlueAuthorization.jsx b/frontend/src/components/AllIntegrations/SendinBlue/SendinBlueAuthorization.jsx index 2da337a14..c0cdd180a 100644 --- a/frontend/src/components/AllIntegrations/SendinBlue/SendinBlueAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/SendinBlue/SendinBlueAuthorization.jsx @@ -4,7 +4,6 @@ import bitsFetch from '../../../Utils/bitsFetch' import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { refreshLists } from './SendinBlueCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function SendinBlueAuthorization({ @@ -61,7 +60,7 @@ const handleAuthorize = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Sendy/SendyAuthorization.jsx b/frontend/src/components/AllIntegrations/Sendy/SendyAuthorization.jsx index 1a74c2428..c32d6028e 100644 --- a/frontend/src/components/AllIntegrations/Sendy/SendyAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Sendy/SendyAuthorization.jsx @@ -6,7 +6,6 @@ import bitsFetch from '../../../Utils/bitsFetch' import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' // import { getAllList } from './ElasticEmailCommonFunc' @@ -56,7 +55,7 @@ const handleAuthorize = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/SeoPress/SeoPressAuthorization.jsx b/frontend/src/components/AllIntegrations/SeoPress/SeoPressAuthorization.jsx index faffd0b3a..9a003c9e9 100644 --- a/frontend/src/components/AllIntegrations/SeoPress/SeoPressAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/SeoPress/SeoPressAuthorization.jsx @@ -2,7 +2,6 @@ import { useState } from 'react' import BackIcn from '../../../Icons/BackIcn' import bitsFetch from '../../../Utils/bitsFetch' import { __ } from '../../../Utils/i18nwrap' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import LoaderSm from '../../Loaders/LoaderSm' import TutorialLink from '../../Utilities/TutorialLink' @@ -47,7 +46,7 @@ const authorizeHandler = () => { width: step === 1 && 900, height: step === 1 && 'auto' }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Slack/SlackAuthorization.jsx b/frontend/src/components/AllIntegrations/Slack/SlackAuthorization.jsx index 9ee657ac5..b4ff513ed 100644 --- a/frontend/src/components/AllIntegrations/Slack/SlackAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Slack/SlackAuthorization.jsx @@ -3,7 +3,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { handleAuthorize } from './SlackCommonFunc' import Note from '../../Utilities/Note' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function SlackAuthorization({ @@ -57,7 +56,7 @@ const nextPage = () => { ...{ width: step === 1 && 900 }, ...{ height: step === 1 && 'auto' } }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/SliceWp/SliceWpAuthorization.jsx b/frontend/src/components/AllIntegrations/SliceWp/SliceWpAuthorization.jsx index 1c50452d8..80dd07041 100644 --- a/frontend/src/components/AllIntegrations/SliceWp/SliceWpAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/SliceWp/SliceWpAuthorization.jsx @@ -4,7 +4,6 @@ import bitsFetch from '../../../Utils/bitsFetch' import { deepCopy } from '../../../Utils/Helpers' import { __, sprintf } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function SliceWpAuthorization({ @@ -47,7 +46,7 @@ const authorizeHandler = () => { width: step === 1 && 900, height: step === 1 && 'auto' }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Smaily/SmailyAuthorization.jsx b/frontend/src/components/AllIntegrations/Smaily/SmailyAuthorization.jsx index 063739427..e99f8b3f7 100644 --- a/frontend/src/components/AllIntegrations/Smaily/SmailyAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Smaily/SmailyAuthorization.jsx @@ -5,7 +5,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { smailyAuthentication } from './SmailyCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function SmailyAuthorization({ @@ -63,7 +62,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/SmartSuite/SmartSuiteAuthorization.jsx b/frontend/src/components/AllIntegrations/SmartSuite/SmartSuiteAuthorization.jsx index 19b49633c..c3a39e3d2 100644 --- a/frontend/src/components/AllIntegrations/SmartSuite/SmartSuiteAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/SmartSuite/SmartSuiteAuthorization.jsx @@ -5,7 +5,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { smartSuiteAuthentication, getAllSolutions } from './SmartSuiteCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' import { create } from 'mutative' @@ -62,7 +61,7 @@ const [error, setError] = useState({ workspaceId: '', apiToken: '' })
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/SperseIO/SperseIO.jsx b/frontend/src/components/AllIntegrations/SperseIO/SperseIO.jsx index 623b70ff8..1deb78032 100644 --- a/frontend/src/components/AllIntegrations/SperseIO/SperseIO.jsx +++ b/frontend/src/components/AllIntegrations/SperseIO/SperseIO.jsx @@ -7,7 +7,6 @@ import Steps from '../../Utilities/Steps' import { saveIntegConfig } from '../IntegrationHelpers/IntegrationHelpers' import WebHooksIntegration from '../IntegrationHelpers/WebHook/WebHooksIntegration' import WebHooksStepTwo from '../IntegrationHelpers/WebHook/WebHooksStepTwo' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' function SperseIO({ formFields, setFlow, flow, allIntegURL }) { @@ -35,7 +34,7 @@ function SperseIO({ formFields, setFlow, flow, allIntegURL }) {
- + {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/SureCart/SureCartAuthorization.jsx b/frontend/src/components/AllIntegrations/SureCart/SureCartAuthorization.jsx index d0b182f25..d4533a801 100644 --- a/frontend/src/components/AllIntegrations/SureCart/SureCartAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/SureCart/SureCartAuthorization.jsx @@ -2,7 +2,6 @@ import { useState } from 'react' import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { handleAuthorize } from './SureCartCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function SureCartAuthorization({ @@ -42,7 +41,7 @@ const nextPage = () => { ...{ width: step === 1 && 900 }, ...{ height: step === 1 && 'auto' } }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/SureMembers/SureMembersAuthorization.jsx b/frontend/src/components/AllIntegrations/SureMembers/SureMembersAuthorization.jsx index 75ab16e77..2e72a02c3 100644 --- a/frontend/src/components/AllIntegrations/SureMembers/SureMembersAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/SureMembers/SureMembersAuthorization.jsx @@ -4,7 +4,6 @@ import { useState } from 'react' import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { sureMembersAuthentication } from './SureMembersCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function SureMembersAuthorization({ @@ -40,7 +39,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/SureTriggers/SureTriggers.jsx b/frontend/src/components/AllIntegrations/SureTriggers/SureTriggers.jsx index fbe505b47..d6b42fb21 100644 --- a/frontend/src/components/AllIntegrations/SureTriggers/SureTriggers.jsx +++ b/frontend/src/components/AllIntegrations/SureTriggers/SureTriggers.jsx @@ -7,7 +7,6 @@ import Steps from '../../Utilities/Steps' import { saveIntegConfig } from '../IntegrationHelpers/IntegrationHelpers' import WebHooksIntegration from '../IntegrationHelpers/WebHook/WebHooksIntegration' import WebHooksStepTwo from '../IntegrationHelpers/WebHook/WebHooksStepTwo' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' function SureTriggers({ formFields, setFlow, flow, allIntegURL }) { @@ -34,7 +33,7 @@ const [sureTriggers, setSureTriggers] = useState({
- + - + - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/TeamsForWooCommerceMemberships/TeamsForWooCommerceMembershipsAuthorization.jsx b/frontend/src/components/AllIntegrations/TeamsForWooCommerceMemberships/TeamsForWooCommerceMembershipsAuthorization.jsx index 64806e5e1..0e005c3cd 100644 --- a/frontend/src/components/AllIntegrations/TeamsForWooCommerceMemberships/TeamsForWooCommerceMembershipsAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/TeamsForWooCommerceMemberships/TeamsForWooCommerceMembershipsAuthorization.jsx @@ -2,7 +2,6 @@ import { useState } from 'react' import BackIcn from '../../../Icons/BackIcn' import bitsFetch from '../../../Utils/bitsFetch' import { __ } from '../../../Utils/i18nwrap' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import LoaderSm from '../../Loaders/LoaderSm' import TutorialLink from '../../Utilities/TutorialLink' @@ -46,7 +45,7 @@ const authorizeHandler = () => { width: step === 1 && 900, height: step === 1 && 'auto' }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Telegram/TelegramAuthorization.jsx b/frontend/src/components/AllIntegrations/Telegram/TelegramAuthorization.jsx index 69b38c2ac..ea3bef1c7 100644 --- a/frontend/src/components/AllIntegrations/Telegram/TelegramAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Telegram/TelegramAuthorization.jsx @@ -4,7 +4,6 @@ import bitsFetch from '../../../Utils/bitsFetch' import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { refreshGetUpdates } from './TelegramCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function TelegramAuthorization({ @@ -66,7 +65,7 @@ const handleAuthorize = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/TheEventsCalendar/TheEventsCalendarAuthorization.jsx b/frontend/src/components/AllIntegrations/TheEventsCalendar/TheEventsCalendarAuthorization.jsx index 4e31fba0f..9969aca5d 100644 --- a/frontend/src/components/AllIntegrations/TheEventsCalendar/TheEventsCalendarAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/TheEventsCalendar/TheEventsCalendarAuthorization.jsx @@ -4,7 +4,6 @@ import { useState } from 'react' import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { theEventsCalendarAuthentication } from './theEventsCalendarCommonFunctions' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function TheEventsCalendarAuthorization({ @@ -40,7 +39,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/ThriveAutomator/ThriveAutomator.jsx b/frontend/src/components/AllIntegrations/ThriveAutomator/ThriveAutomator.jsx index 0f79de3f6..a93dfdf94 100644 --- a/frontend/src/components/AllIntegrations/ThriveAutomator/ThriveAutomator.jsx +++ b/frontend/src/components/AllIntegrations/ThriveAutomator/ThriveAutomator.jsx @@ -7,7 +7,6 @@ import Steps from '../../Utilities/Steps' import { saveIntegConfig } from '../IntegrationHelpers/IntegrationHelpers' import WebHooksIntegration from '../IntegrationHelpers/WebHook/WebHooksIntegration' import WebHooksStepTwo from '../IntegrationHelpers/WebHook/WebHooksStepTwo' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' function ThriveAutomator({ formFields, setFlow, flow, allIntegURL }) { @@ -34,7 +33,7 @@ const [thriveAutomator, setThriveAutomator] = useState({
- + - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/TutorLms/TutorLmsAuthorization.jsx b/frontend/src/components/AllIntegrations/TutorLms/TutorLmsAuthorization.jsx index 77111e67e..9bc30a8d0 100644 --- a/frontend/src/components/AllIntegrations/TutorLms/TutorLmsAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/TutorLms/TutorLmsAuthorization.jsx @@ -4,7 +4,6 @@ import bitsFetch from '../../../Utils/bitsFetch' import { deepCopy } from '../../../Utils/Helpers' import { __, sprintf } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function TutorLmsAuthorization({ @@ -45,7 +44,7 @@ const authorizeHandler = () => { width: step === 1 && 900, height: step === 1 && 'auto' }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Twilio/TwilioAuthorization.jsx b/frontend/src/components/AllIntegrations/Twilio/TwilioAuthorization.jsx index 004b2ca07..70f335e9f 100644 --- a/frontend/src/components/AllIntegrations/Twilio/TwilioAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Twilio/TwilioAuthorization.jsx @@ -3,7 +3,6 @@ import { useState } from 'react' import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { handleAuthorize } from './TwilioCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function TwilioAuthorization({ @@ -38,7 +37,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/UltimateAffiliatePro/UltimateAffiliateProAuthorization.jsx b/frontend/src/components/AllIntegrations/UltimateAffiliatePro/UltimateAffiliateProAuthorization.jsx index fe534aefa..09d456bc5 100644 --- a/frontend/src/components/AllIntegrations/UltimateAffiliatePro/UltimateAffiliateProAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/UltimateAffiliatePro/UltimateAffiliateProAuthorization.jsx @@ -4,8 +4,6 @@ import bitsFetch from '../../../Utils/bitsFetch' import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import TutorialLink from '../../Utilities/TutorialLink' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' - export default function UltimateAffiliateProAuthorization({ ultimateAffiliateProConf, setUltimateAffiliateProConf, @@ -56,7 +54,7 @@ export default function UltimateAffiliateProAuthorization({ width: step === 1 && 900, height: step === 1 && 'auto' }}> - +
{__('Integration Name:', 'bit-integrations')}
diff --git a/frontend/src/components/AllIntegrations/UncannyAutomator/UncannyAutomator.jsx b/frontend/src/components/AllIntegrations/UncannyAutomator/UncannyAutomator.jsx index 372256d8e..94754a10a 100644 --- a/frontend/src/components/AllIntegrations/UncannyAutomator/UncannyAutomator.jsx +++ b/frontend/src/components/AllIntegrations/UncannyAutomator/UncannyAutomator.jsx @@ -7,7 +7,6 @@ import Steps from '../../Utilities/Steps' import { saveIntegConfig } from '../IntegrationHelpers/IntegrationHelpers' import WebHooksIntegration from '../IntegrationHelpers/WebHook/WebHooksIntegration' import WebHooksStepTwo from '../IntegrationHelpers/WebHook/WebHooksStepTwo' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' function UncannyAutomator({ formFields, setFlow, flow, allIntegURL }) { @@ -34,7 +33,7 @@ const [uncannyAutomator, setUncannyAutomator] = useState({
- + - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Vbout/VboutAuthorization.jsx b/frontend/src/components/AllIntegrations/Vbout/VboutAuthorization.jsx index 6c0e8e16b..5259edca6 100644 --- a/frontend/src/components/AllIntegrations/Vbout/VboutAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Vbout/VboutAuthorization.jsx @@ -5,7 +5,6 @@ import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { handleAuthorize } from './VboutCommonFunc' import { getAllLists } from './VboutCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function VboutAuthorization({ @@ -58,7 +57,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Voxel/VoxelAuthorization.jsx b/frontend/src/components/AllIntegrations/Voxel/VoxelAuthorization.jsx index d38a18eca..7f7af32ef 100644 --- a/frontend/src/components/AllIntegrations/Voxel/VoxelAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Voxel/VoxelAuthorization.jsx @@ -4,7 +4,6 @@ import { useState } from 'react' import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { voxelAuthentication } from './VoxelCommonFunctions' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function VoxelAuthorization({ @@ -40,7 +39,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/WPCafe/WPCafeAuthorization.jsx b/frontend/src/components/AllIntegrations/WPCafe/WPCafeAuthorization.jsx index a5e2b0d95..624d674fc 100644 --- a/frontend/src/components/AllIntegrations/WPCafe/WPCafeAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/WPCafe/WPCafeAuthorization.jsx @@ -1,6 +1,5 @@ import { useState } from 'react' import { __ } from '../../../Utils/i18nwrap' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import TutorialLink from '../../Utilities/TutorialLink' @@ -28,7 +27,7 @@ const handleInput = e => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/WPCourseware/WPCoursewareAuthorization.jsx b/frontend/src/components/AllIntegrations/WPCourseware/WPCoursewareAuthorization.jsx index 0e2f323c1..e53e70c6f 100644 --- a/frontend/src/components/AllIntegrations/WPCourseware/WPCoursewareAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/WPCourseware/WPCoursewareAuthorization.jsx @@ -4,7 +4,6 @@ import { __, sprintf } from '../../../Utils/i18nwrap' import bitsFetch from '../../../Utils/bitsFetch' import LoaderSm from '../../Loaders/LoaderSm' import BackIcn from '../../../Icons/BackIcn' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function WPCoursewareAuthorization({ @@ -55,7 +54,7 @@ useEffect(
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/WPForo/WPForoAuthorization.jsx b/frontend/src/components/AllIntegrations/WPForo/WPForoAuthorization.jsx index ee22f37bd..56245d721 100644 --- a/frontend/src/components/AllIntegrations/WPForo/WPForoAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/WPForo/WPForoAuthorization.jsx @@ -4,7 +4,6 @@ import { useState } from 'react' import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { wpforoAuthentication } from './WPForoCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function WPForoAuthorization({ @@ -40,7 +39,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/WPFusion/WPFusion.jsx b/frontend/src/components/AllIntegrations/WPFusion/WPFusion.jsx index b76efd82e..95dfe0699 100644 --- a/frontend/src/components/AllIntegrations/WPFusion/WPFusion.jsx +++ b/frontend/src/components/AllIntegrations/WPFusion/WPFusion.jsx @@ -7,7 +7,6 @@ import Steps from '../../Utilities/Steps' import { saveIntegConfig } from '../IntegrationHelpers/IntegrationHelpers' import WebHooksIntegration from '../IntegrationHelpers/WebHook/WebHooksIntegration' import WebHooksStepTwo from '../IntegrationHelpers/WebHook/WebHooksStepTwo' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' function WPFusion({ formFields, setFlow, flow, allIntegURL }) { @@ -34,7 +33,7 @@ const [wpFusion, setWPFusion] = useState({
- + - + { const newConf = { ...weDocsConf } @@ -29,8 +27,7 @@ export default function WeDocsAuthorization({
- {weDocs?.youTubeLink && } - {weDocs?.docLink && } +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/WebHooks/WebHooks.jsx b/frontend/src/components/AllIntegrations/WebHooks/WebHooks.jsx index 6fd6699c9..fca1f25be 100644 --- a/frontend/src/components/AllIntegrations/WebHooks/WebHooks.jsx +++ b/frontend/src/components/AllIntegrations/WebHooks/WebHooks.jsx @@ -7,7 +7,6 @@ import Steps from '../../Utilities/Steps' import { saveIntegConfig } from '../IntegrationHelpers/IntegrationHelpers' import WebHooksStepTwo from '../IntegrationHelpers/WebHook/WebHooksStepTwo' import WebHooksIntegration from '../IntegrationHelpers/WebHook/WebHooksIntegration' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' function WebHooks({ formFields, setFlow, flow, allIntegURL }) { diff --git a/frontend/src/components/AllIntegrations/WhatsApp/WhatsAppAuthorization.jsx b/frontend/src/components/AllIntegrations/WhatsApp/WhatsAppAuthorization.jsx index 3e3146d27..7e6a63980 100644 --- a/frontend/src/components/AllIntegrations/WhatsApp/WhatsAppAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/WhatsApp/WhatsAppAuthorization.jsx @@ -3,7 +3,6 @@ import BackIcn from '../../../Icons/BackIcn' import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import { handleAuthorize } from './WhatsAppCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function WhatsAppAuthorization({ @@ -41,7 +40,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/WishlistMember/WishlistMemberAuthorization.jsx b/frontend/src/components/AllIntegrations/WishlistMember/WishlistMemberAuthorization.jsx index 78c95f6b7..192f40ed3 100644 --- a/frontend/src/components/AllIntegrations/WishlistMember/WishlistMemberAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/WishlistMember/WishlistMemberAuthorization.jsx @@ -1,7 +1,6 @@ import { useState } from 'react' import BackIcn from '../../../Icons/BackIcn' import { __ } from '../../../Utils/i18nwrap' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import LoaderSm from '../../Loaders/LoaderSm' import TutorialLink from '../../Utilities/TutorialLink' import { handleAuthorize, setIntegrationName } from './WishlistMemberCommonFunc' @@ -20,7 +19,7 @@ return (
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/WooCommerce/WooCommerceAuthorization.jsx b/frontend/src/components/AllIntegrations/WooCommerce/WooCommerceAuthorization.jsx index 8346579b2..5ee3c4ce2 100644 --- a/frontend/src/components/AllIntegrations/WooCommerce/WooCommerceAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/WooCommerce/WooCommerceAuthorization.jsx @@ -4,7 +4,6 @@ import bitsFetch from '../../../Utils/bitsFetch' import { deepCopy } from '../../../Utils/Helpers' import { __, sprintf } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function WooCommerceAuthorization({ @@ -46,7 +45,7 @@ const authorizeHandler = () => { width: step === 1 && 900, height: step === 1 && 'auto' }}> - +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Woodpecker/WoodpeckerAuthorization.jsx b/frontend/src/components/AllIntegrations/Woodpecker/WoodpeckerAuthorization.jsx index 51fbf9547..cc7735aa9 100644 --- a/frontend/src/components/AllIntegrations/Woodpecker/WoodpeckerAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Woodpecker/WoodpeckerAuthorization.jsx @@ -5,7 +5,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { woodpeckerAuthentication } from './WoodpeckerCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function WoodpeckerAuthorization({ @@ -58,7 +57,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/WordPress/WordPressAuthorization.jsx b/frontend/src/components/AllIntegrations/WordPress/WordPressAuthorization.jsx index 51694eafe..1cec1a067 100644 --- a/frontend/src/components/AllIntegrations/WordPress/WordPressAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/WordPress/WordPressAuthorization.jsx @@ -3,6 +3,7 @@ import BackIcn from '../../../Icons/BackIcn' import bitsFetch from '../../../Utils/bitsFetch' import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' +import TutorialLink from '../../Utilities/TutorialLink' export default function WordPressAuthorization({ wordPressConf, @@ -38,6 +39,8 @@ export default function WordPressAuthorization({
+ +
{__('Integration Name:', 'bit-integrations')}
diff --git a/frontend/src/components/AllIntegrations/ZagoMail/ZagoMailAuthorization.jsx b/frontend/src/components/AllIntegrations/ZagoMail/ZagoMailAuthorization.jsx index 9288dce80..5a5f27ba9 100644 --- a/frontend/src/components/AllIntegrations/ZagoMail/ZagoMailAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/ZagoMail/ZagoMailAuthorization.jsx @@ -5,7 +5,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import Note from '../../Utilities/Note' import { refreshZagoMailList } from './ZagoMailCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function ZagoMailAuthorization({ @@ -77,7 +76,7 @@ const [isAuthorized, setisAuthorized] = useState(false)
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Zapier/Zapier.jsx b/frontend/src/components/AllIntegrations/Zapier/Zapier.jsx index 8a63514f0..4f68dbb94 100644 --- a/frontend/src/components/AllIntegrations/Zapier/Zapier.jsx +++ b/frontend/src/components/AllIntegrations/Zapier/Zapier.jsx @@ -7,7 +7,6 @@ import Steps from '../../Utilities/Steps' import { saveIntegConfig } from '../IntegrationHelpers/IntegrationHelpers' import WebHooksIntegration from '../IntegrationHelpers/WebHook/WebHooksIntegration' import WebHooksStepTwo from '../IntegrationHelpers/WebHook/WebHooksStepTwo' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' function Zapier({ formFields, setFlow, flow, allIntegURL }) { @@ -34,7 +33,7 @@ const [zapier, setZapier] = useState({
- + {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/ZohoAnalytics/ZohoAnalyticsAuthorization.jsx b/frontend/src/components/AllIntegrations/ZohoAnalytics/ZohoAnalyticsAuthorization.jsx index 68ede7a52..81f8a2a08 100644 --- a/frontend/src/components/AllIntegrations/ZohoAnalytics/ZohoAnalyticsAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/ZohoAnalytics/ZohoAnalyticsAuthorization.jsx @@ -5,7 +5,6 @@ import CopyText from '../../Utilities/CopyText' import LoaderSm from '../../Loaders/LoaderSm' import { handleAuthorize, refreshWorkspaces } from './ZohoAnalyticsCommonFunc' import BackIcn from '../../../Icons/BackIcn' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function ZohoAnalyticsAuthorization({ @@ -56,7 +55,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/ZohoBigin/ZohoBiginAuthorization.jsx b/frontend/src/components/AllIntegrations/ZohoBigin/ZohoBiginAuthorization.jsx index 37eb5f680..229a5b4fb 100644 --- a/frontend/src/components/AllIntegrations/ZohoBigin/ZohoBiginAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/ZohoBigin/ZohoBiginAuthorization.jsx @@ -7,7 +7,6 @@ import LoaderSm from '../../Loaders/LoaderSm' import CopyText from '../../Utilities/CopyText' import { handleAuthorize } from '../IntegrationHelpers/IntegrationHelpers' import { refreshModules } from './ZohoBiginCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function ZohoBiginAuthorization({ @@ -48,7 +47,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/ZohoCRM/ZohoCRMAuthorization.jsx b/frontend/src/components/AllIntegrations/ZohoCRM/ZohoCRMAuthorization.jsx index 849c8cacc..0ae96a010 100644 --- a/frontend/src/components/AllIntegrations/ZohoCRM/ZohoCRMAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/ZohoCRM/ZohoCRMAuthorization.jsx @@ -6,7 +6,6 @@ import LoaderSm from '../../Loaders/LoaderSm' import { refreshModules } from './ZohoCRMCommonFunc' import { handleAuthorize } from '../IntegrationHelpers/IntegrationHelpers' import { $appConfigState } from '../../../GlobalStates' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function ZohoCRMAuthorization({ @@ -46,7 +45,7 @@ const scopes = 'ZohoCRM.modules.ALL,ZohoCRM.settings.ALL,ZohoCRM.users.Read,zoho
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/ZohoCampaigns/ZohoCampaignsAuthorization.jsx b/frontend/src/components/AllIntegrations/ZohoCampaigns/ZohoCampaignsAuthorization.jsx index 57f3724b2..11004b841 100644 --- a/frontend/src/components/AllIntegrations/ZohoCampaigns/ZohoCampaignsAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/ZohoCampaigns/ZohoCampaignsAuthorization.jsx @@ -7,7 +7,6 @@ import { refreshLists } from './ZohoCampaignsCommonFunc' import BackIcn from '../../../Icons/BackIcn' import { $appConfigState } from '../../../GlobalStates' import { handleAuthorize } from '../IntegrationHelpers/IntegrationHelpers' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function ZohoCampaignsAuthorization({ @@ -47,7 +46,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/ZohoCreator/ZohoCreatorAuthorization.jsx b/frontend/src/components/AllIntegrations/ZohoCreator/ZohoCreatorAuthorization.jsx index a6c5376c1..1763c7a36 100644 --- a/frontend/src/components/AllIntegrations/ZohoCreator/ZohoCreatorAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/ZohoCreator/ZohoCreatorAuthorization.jsx @@ -4,7 +4,6 @@ import { __ } from '../../../Utils/i18nwrap' import LoaderSm from '../../Loaders/LoaderSm' import CopyText from '../../Utilities/CopyText' import { handleAuthorize, refreshApplications } from './ZohoCreatorCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function ZohoCreatorAuthorization({ @@ -53,7 +52,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/ZohoDesk/ZohoDeskAuthorization.jsx b/frontend/src/components/AllIntegrations/ZohoDesk/ZohoDeskAuthorization.jsx index 169b06c62..6e781f1e9 100644 --- a/frontend/src/components/AllIntegrations/ZohoDesk/ZohoDeskAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/ZohoDesk/ZohoDeskAuthorization.jsx @@ -7,7 +7,6 @@ import LoaderSm from '../../Loaders/LoaderSm' import CopyText from '../../Utilities/CopyText' import { handleAuthorize } from '../IntegrationHelpers/IntegrationHelpers' import { refreshOrganizations } from './ZohoDeskCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function ZohoDeskAuthorization({ @@ -48,7 +47,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/ZohoFlow/ZohoFlow.jsx b/frontend/src/components/AllIntegrations/ZohoFlow/ZohoFlow.jsx index aba308c35..cd19b6e64 100644 --- a/frontend/src/components/AllIntegrations/ZohoFlow/ZohoFlow.jsx +++ b/frontend/src/components/AllIntegrations/ZohoFlow/ZohoFlow.jsx @@ -7,7 +7,6 @@ import Steps from '../../Utilities/Steps' import { saveIntegConfig } from '../IntegrationHelpers/IntegrationHelpers' import WebHooksLayouts from '../IntegrationHelpers/WebHook/WebHooksIntegration' import WebHooksStepTwo from '../IntegrationHelpers/WebHook/WebHooksStepTwo' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' function ZohoFlow({ formFields, setFlow, flow, allIntegURL }) { @@ -35,7 +34,7 @@ const [zohoFlow, setZohoFlow] = useState({
- + {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/ZohoRecruit/ZohoRecruitAuthorization.jsx b/frontend/src/components/AllIntegrations/ZohoRecruit/ZohoRecruitAuthorization.jsx index 2b4d320bb..f81c23824 100644 --- a/frontend/src/components/AllIntegrations/ZohoRecruit/ZohoRecruitAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/ZohoRecruit/ZohoRecruitAuthorization.jsx @@ -7,7 +7,6 @@ import LoaderSm from '../../Loaders/LoaderSm' import CopyText from '../../Utilities/CopyText' import { handleAuthorize } from '../IntegrationHelpers/IntegrationHelpers' import { refreshModules } from './ZohoRecruitCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function ZohoRecruitAuthorization({ @@ -47,7 +46,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/ZohoSheet/ZohoSheetAuthorization.jsx b/frontend/src/components/AllIntegrations/ZohoSheet/ZohoSheetAuthorization.jsx index 35622d44b..006d2ba89 100644 --- a/frontend/src/components/AllIntegrations/ZohoSheet/ZohoSheetAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/ZohoSheet/ZohoSheetAuthorization.jsx @@ -7,7 +7,6 @@ import LoaderSm from '../../Loaders/LoaderSm' import CopyText from '../../Utilities/CopyText' import { $appConfigState } from '../../../GlobalStates' import { handleAuthorization } from './ZohoSheetCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function ZohoSheetAuthorization({ @@ -46,7 +45,7 @@ const nextPage = () => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/Zoom/ZoomAuthorization.jsx b/frontend/src/components/AllIntegrations/Zoom/ZoomAuthorization.jsx index e9086a353..3a0b38533 100644 --- a/frontend/src/components/AllIntegrations/Zoom/ZoomAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/Zoom/ZoomAuthorization.jsx @@ -7,7 +7,6 @@ import LoaderSm from '../../Loaders/LoaderSm' import CopyText from '../../Utilities/CopyText' import Note from '../../Utilities/Note' import { handleAuthorize, zoomAllMeeting } from './ZoomCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function ZoomAuthorization({ @@ -60,7 +59,7 @@ const handleInput = e => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/AllIntegrations/ZoomWebinar/ZoomWebinarAuthorization.jsx b/frontend/src/components/AllIntegrations/ZoomWebinar/ZoomWebinarAuthorization.jsx index a9e2cac0f..ccf6e91be 100644 --- a/frontend/src/components/AllIntegrations/ZoomWebinar/ZoomWebinarAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/ZoomWebinar/ZoomWebinarAuthorization.jsx @@ -7,7 +7,6 @@ import LoaderSm from '../../Loaders/LoaderSm' import CopyText from '../../Utilities/CopyText' import Note from '../../Utilities/Note' import { handleAuthorize, zoomAllWebinar } from './ZoomCommonFunc' -import tutorialLinks from '../../../Utils/StaticData/tutorialLinks' import TutorialLink from '../../Utilities/TutorialLink' export default function ZoomWebinarAuthorization({ @@ -59,7 +58,7 @@ const handleInput = e => {
- +
{__('Integration Name:', 'bit-integrations')} diff --git a/frontend/src/components/Triggers/ActionHook.jsx b/frontend/src/components/Triggers/ActionHook.jsx index 69bd405b9..07f3593fe 100644 --- a/frontend/src/components/Triggers/ActionHook.jsx +++ b/frontend/src/components/Triggers/ActionHook.jsx @@ -37,6 +37,12 @@ const ActionHook = () => { const [snack, setSnackbar] = useState({ show: false }) const [showResponse, setShowResponse] = useState(false) const isFetchingRef = useRef(false) + const actionHookTutorialLinks = { + actionHook: { + docLink: 'https://bitapps.pro/docs/bit-integrations/trigger/action-hook-integrations', + youTubeLink: 'https://youtu.be/pZ-8JuZfIco?si=Xxv857hJjv6p5Tcu' + } + } let controller = new AbortController() const signal = controller.signal @@ -338,14 +344,8 @@ const ActionHook = () => {
)} - - + +
) @@ -386,4 +386,4 @@ const info = `

${sprintf( 'Bit Integrations Trigger Hooks', 'bit-integrations' )} -

` \ No newline at end of file + ` diff --git a/frontend/src/components/Triggers/CustomFormSubmission.jsx b/frontend/src/components/Triggers/CustomFormSubmission.jsx index 7b852ead4..7a5b683bf 100644 --- a/frontend/src/components/Triggers/CustomFormSubmission.jsx +++ b/frontend/src/components/Triggers/CustomFormSubmission.jsx @@ -33,6 +33,15 @@ const CustomFormSubmission = () => { const [snack, setSnackbar] = useState({ show: false }) const [showResponse, setShowResponse] = useState(false) const isFetchingRef = useRef(false) + const triggerLinkKey = newFlow?.triggered_entity + const triggerTutorialLinks = triggerLinkKey + ? { + [triggerLinkKey]: { + docLink: newFlow?.triggerDetail?.documentation_url || '', + youTubeLink: newFlow?.triggerDetail?.tutorial_url || '' + } + } + : undefined let controller = new AbortController() const signal = controller.signal @@ -318,13 +327,11 @@ const CustomFormSubmission = () => { )}
- +
@@ -362,4 +369,3 @@ const info = newFlow => `

${sprintf( ? `

Note

${newFlow?.triggerDetail?.note}` : '' }` - diff --git a/frontend/src/components/Triggers/CustomTrigger.jsx b/frontend/src/components/Triggers/CustomTrigger.jsx index 82fc7a7dc..564a07aba 100644 --- a/frontend/src/components/Triggers/CustomTrigger.jsx +++ b/frontend/src/components/Triggers/CustomTrigger.jsx @@ -30,6 +30,15 @@ const CustomTrigger = () => { const [snack, setSnackbar] = useState({ show: false }) const [showResponse, setShowResponse] = useState(false) const isFetchingRef = useRef(false) + const triggerLinkKey = newFlow?.triggered_entity + const triggerTutorialLinks = triggerLinkKey + ? { + [triggerLinkKey]: { + docLink: newFlow?.triggerDetail?.documentation_url || '', + youTubeLink: newFlow?.triggerDetail?.tutorial_url || '' + } + } + : undefined let controller = new AbortController() const signal = controller.signal @@ -212,8 +221,9 @@ const CustomTrigger = () => {
)} - +
@@ -279,9 +287,9 @@ const info = `

${sprintf( )}

  • ${__( - 'Copy the do action hook snippet and paste it into your form submission function.', - 'bit-integrations' -)}
  • + 'Copy the do action hook snippet and paste it into your form submission function.', + 'bit-integrations' + )}
  • ${__('Click Fetch.', 'bit-integrations')}
  • ${__('Submit the form to send test data.', 'bit-integrations')}
  • ${__('Select the fields you need, then click Set Action.', 'bit-integrations')}
  • diff --git a/frontend/src/components/Triggers/FormPlugin.jsx b/frontend/src/components/Triggers/FormPlugin.jsx index f605b10ed..738884302 100644 --- a/frontend/src/components/Triggers/FormPlugin.jsx +++ b/frontend/src/components/Triggers/FormPlugin.jsx @@ -23,6 +23,15 @@ const FormPlugin = () => { const [isLoad, setIsLoad] = useState(false) const btcbi = useRecoilValue($appConfigState) const { isPro } = btcbi + const triggerLinkKey = newFlow?.triggered_entity + const triggerTutorialLinks = triggerLinkKey + ? { + [triggerLinkKey]: { + docLink: newFlow?.triggerDetail?.documentation_url || '', + youTubeLink: newFlow?.triggerDetail?.tutorial_url || '' + } + } + : undefined const { data, isLoading } = useFetch({ payload: {}, @@ -148,19 +157,16 @@ const FormPlugin = () => { )}
- ) - } -
+ )} +
) } export default FormPlugin @@ -175,7 +181,8 @@ const info = newFlow => `

${sprintf(
  • ${__('Choose the form or task you want to use.', 'bit-integrations')}
  • ${__('Click Next to Go.', 'bit-integrations')}
  • - ${newFlow?.triggerDetail?.note - ? `

    ${__('Note', 'bit-integrations')}

    ${newFlow?.triggerDetail?.note}` - : '' - }` + ${ + newFlow?.triggerDetail?.note + ? `

    ${__('Note', 'bit-integrations')}

    ${newFlow?.triggerDetail?.note}` + : '' + }` diff --git a/frontend/src/components/Triggers/Webhook.jsx b/frontend/src/components/Triggers/Webhook.jsx index a594c68b2..cf2faae07 100644 --- a/frontend/src/components/Triggers/Webhook.jsx +++ b/frontend/src/components/Triggers/Webhook.jsx @@ -26,6 +26,15 @@ const Webhook = () => { const { api } = useRecoilValue($appConfigState) const [showResponse, setShowResponse] = useState(false) const intervalRef = useRef(null) + const triggerLinkKey = newFlow?.triggered_entity + const triggerTutorialLinks = triggerLinkKey + ? { + [triggerLinkKey]: { + docLink: newFlow?.triggerDetail?.documentation_url || '', + youTubeLink: newFlow?.triggerDetail?.tutorial_url || '' + } + } + : undefined let controller = new AbortController() const signal = controller.signal const setTriggerData = () => { @@ -164,13 +173,11 @@ const Webhook = () => {
    - +
    @@ -190,20 +197,20 @@ const info = `${__(

    ${__('Quick Setup', 'bit-integrations')}

    • ${__( - 'Copy the Webhook URL and add it to your form or app.', - 'bit-integrations' -)}
    • + 'Copy the Webhook URL and add it to your form or app.', + 'bit-integrations' + )}
    • ${__( - 'Click Fetch, then submit your form (or send a test request).', - 'bit-integrations' -)}
    • + 'Click Fetch, then submit your form (or send a test request).', + 'bit-integrations' + )}
    • ${__( - 'When response data appears, click Set Action to continue.', - 'bit-integrations' -)}
    • + 'When response data appears, click Set Action to continue.', + 'bit-integrations' + )}

    ${__('Important', 'bit-integrations')}: ${__( - 'The Fetch button will keep spinning until you submit the form/task.', - 'bit-integrations' -)}

    + 'The Fetch button will keep spinning until you submit the form/task.', + 'bit-integrations' + )}

    ` diff --git a/frontend/src/components/Utilities/TutorialLink.jsx b/frontend/src/components/Utilities/TutorialLink.jsx index 6444f2e60..2a90718b9 100644 --- a/frontend/src/components/Utilities/TutorialLink.jsx +++ b/frontend/src/components/Utilities/TutorialLink.jsx @@ -8,6 +8,7 @@ import GrokIcn from '../../Icons/GrokIcn' import PerplexityIcn from '../../Icons/PerplexityIcn' import YoutubeIcn from '../../Icons/YoutubeIcn' import { __, sprintf } from '../../Utils/i18nwrap' +import tutorialLinks from '../../Utils/StaticData/tutorialLinks' const aiTools = [ { @@ -42,7 +43,8 @@ const aiTools = [ } ] -function TutorialLink({ title, subtitle, links, style }) { +function TutorialLink({ subtitle, linkKey, style, linksMap }) { + const links = linkKey ? linksMap?.[linkKey] || tutorialLinks?.[linkKey] || {} : {} const youTubeLink = links?.youTubeLink && links.youTubeLink !== '#' ? links.youTubeLink : undefined const docLink = links?.docLink && links.docLink !== '#' ? links.docLink : undefined const [showAiTools, setShowAiTools] = useState(false) @@ -90,7 +92,7 @@ function TutorialLink({ title, subtitle, links, style }) { const encodedPrompt = encodeURIComponent(aiSummaryPrompt) return ( -
    +
    {youTubeLink && ( From 3e0fd56c3a2fb4767103b646e4938b667f67b289 Mon Sep 17 00:00:00 2001 From: Rishad Alam <101513331+RishadAlam@users.noreply.github.com> Date: Wed, 22 Apr 2026 13:18:47 +0600 Subject: [PATCH 05/10] refactor: wordpress action commons --- backend/Actions/WordPress/Routes.php | 8 - .../Actions/WordPress/WordPressController.php | 142 +----------------- .../WordPress/WordPressAuthorization.jsx | 4 - .../WordPress/WordPressCommonFunc.js | 95 ------------ .../AllIntegrations/WordPress/staticData.js | 1 - 5 files changed, 4 insertions(+), 246 deletions(-) diff --git a/backend/Actions/WordPress/Routes.php b/backend/Actions/WordPress/Routes.php index af14fffed..71ec270e8 100644 --- a/backend/Actions/WordPress/Routes.php +++ b/backend/Actions/WordPress/Routes.php @@ -8,11 +8,3 @@ use BitApps\Integrations\Core\Util\Route; Route::post('wordpress_authorize', [WordPressController::class, 'wordPressAuthorize']); -Route::post('get_wordpress_users', [WordPressController::class, 'getUsers']); -Route::post('get_wordpress_user_roles', [WordPressController::class, 'getUserRoles']); -Route::post('get_wordpress_post_types', [WordPressController::class, 'getPostTypes']); -Route::post('get_wordpress_posts', [WordPressController::class, 'getPosts']); -Route::post('get_wordpress_post_tags', [WordPressController::class, 'getPostTags']); -Route::post('get_wordpress_taxonomies', [WordPressController::class, 'getTaxonomies']); -Route::post('get_wordpress_post_categories', [WordPressController::class, 'getPostCategory']); -Route::post('get_wordpress_terms_by_taxonomy', [WordPressController::class, 'getTermsByTaxonomy']); diff --git a/backend/Actions/WordPress/WordPressController.php b/backend/Actions/WordPress/WordPressController.php index c390af12a..78382a80d 100644 --- a/backend/Actions/WordPress/WordPressController.php +++ b/backend/Actions/WordPress/WordPressController.php @@ -2,8 +2,6 @@ namespace BitApps\Integrations\Actions\WordPress; -use WP_Roles; - class WordPressController { public static function wordPressAuthorize() @@ -14,143 +12,11 @@ public static function wordPressAuthorize() public function execute($integrationData, $fieldValues) { $integrationDetails = $integrationData->flow_details; - $integId = $integrationData->id; - $fieldMap = isset($integrationDetails->field_map) ? $integrationDetails->field_map : []; - - $recordApiHelper = new RecordApiHelper($integrationDetails, $integId); - $wordPressResponse = $recordApiHelper->execute($fieldValues, $fieldMap, $integrationDetails); - - return $wordPressResponse; - } - - public function getUsers() - { - $users = get_users(['fields' => ['ID', 'user_login', 'user_email', 'display_name']]); - - $result = array_map(function ($user) { - return [ - 'id' => $user->ID, - 'label' => $user->display_name . ' (' . $user->user_email . ')', - 'value' => $user->ID, - ]; - }, $users); - - wp_send_json_success($result); - } - - public function getUserRoles() - { - global $wp_roles; - - if (!isset($wp_roles)) { - $wp_roles = new WP_Roles(); - } - - $roles = []; - - foreach ($wp_roles->roles as $key => $role) { - $roles[] = [ - 'label' => $role['name'], - 'value' => $key, - ]; - } - - wp_send_json_success($roles); - } - - public function getPostTypes() - { - $postTypes = get_post_types(['public' => true], 'objects'); - - $result = []; - - foreach ($postTypes as $postType) { - $result[] = [ - 'label' => $postType->label, - 'value' => $postType->name, - ]; - } - - wp_send_json_success($result); - } - - public function getPosts($data = null) - { - $postType = isset($data->postType) ? sanitize_text_field($data->postType) : null; - - $args = [ - 'posts_per_page' => -1, - 'post_status' => 'any', - ]; - - if ($postType) { - $args['post_type'] = $postType; - } - - $posts = get_posts($args); - - $result = array_map(function ($post) { - return [ - 'label' => $post->post_title, - 'value' => $post->ID, - ]; - }, $posts); - - wp_send_json_success($result); - } - - public function getPostTags() - { - wp_send_json_success($this->getTermsBy('post_tag')); - } - - public function getTaxonomies() - { - $taxonomies = get_taxonomies([], 'objects'); - - $result = array_values(array_map(function ($taxonomy) { - return [ - 'label' => $taxonomy->label, - 'value' => $taxonomy->name, - ]; - }, $taxonomies)); - - wp_send_json_success($result); - } - - public function getPostCategory() - { - wp_send_json_success($this->getTermsBy('category')); - } - - public function getTermsByTaxonomy($data = null) - { - $taxonomy = isset($data->taxonomy) ? sanitize_text_field($data->taxonomy) : ''; - - if (!taxonomy_exists($taxonomy)) { - wp_send_json_error(__('Invalid taxonomy.', 'bit-integrations')); - } - - wp_send_json_success($this->getTermsBy($taxonomy, 'term_id', false, 'slug')); - } - - private function getTermsBy($taxonomy, $orderby = 'term_id', $hideEmpty = false, $valueKey = 'term_id') - { - $terms = get_terms([ - 'taxonomy' => $taxonomy, - 'orderby' => $orderby, - 'hide_empty' => $hideEmpty, - ]); + $integId = $integrationData->id; + $fieldMap = isset($integrationDetails->field_map) ? $integrationDetails->field_map : []; - if (is_wp_error($terms)) { - return []; - } + $recordApiHelper = new RecordApiHelper($integrationDetails, $integId); - return array_map(function ($term) use ($valueKey) { - return [ - 'label' => $term->name, - 'value' => $term->{$valueKey}, - ]; - }, $terms); + return $recordApiHelper->execute($fieldValues, $fieldMap, $integrationDetails); } } diff --git a/frontend/src/components/AllIntegrations/WordPress/WordPressAuthorization.jsx b/frontend/src/components/AllIntegrations/WordPress/WordPressAuthorization.jsx index 1cec1a067..6ae9d9f75 100644 --- a/frontend/src/components/AllIntegrations/WordPress/WordPressAuthorization.jsx +++ b/frontend/src/components/AllIntegrations/WordPress/WordPressAuthorization.jsx @@ -53,10 +53,6 @@ export default function WordPressAuthorization({ placeholder={__('Integration Name...', 'bit-integrations')} /> -
    -

    {__('WordPress is always available. Click Connect to proceed.', 'bit-integrations')}

    -
    -