@gem-sdk/pages 2.1.21 → 2.1.27-staging.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -410,6 +410,7 @@ const Toolbar = ()=>{
410
410
  if (!value || !currentComponentActive.current) {
411
411
  return;
412
412
  }
413
+ let isClickProcessing = false;
413
414
  const selector = getSelectorComponent({
414
415
  ...currentComponentActive.current
415
416
  });
@@ -418,6 +419,7 @@ const Toolbar = ()=>{
418
419
  const $parents = $component?.querySelectorAll('[data-toolbar-parent]');
419
420
  if ($parents.length) {
420
421
  const onHover = ($parent)=>{
422
+ if (isClickProcessing) return;
421
423
  const uid = $parent.getAttribute('data-parent-uid');
422
424
  if (!uid) return;
423
425
  const $parentComponents = document.body.querySelector('#storefront')?.querySelectorAll(`[data-uid="${uid}"]`);
@@ -446,6 +448,7 @@ const Toolbar = ()=>{
446
448
  }
447
449
  };
448
450
  const onClick = async ($parent)=>{
451
+ isClickProcessing = true;
449
452
  const uid = $parent.getAttribute('data-parent-uid');
450
453
  if (!uid) return;
451
454
  const isElementInsideProduct = async ()=>{
@@ -477,6 +480,9 @@ const Toolbar = ()=>{
477
480
  });
478
481
  outHover($parent);
479
482
  window.dispatchEvent(event);
483
+ setTimeout(()=>{
484
+ isClickProcessing = false;
485
+ }, 0);
480
486
  };
481
487
  $parents.forEach(($parent)=>{
482
488
  $parent.addEventListener('mouseover', ()=>onHover($parent));
@@ -1,8 +1,10 @@
1
1
  'use strict';
2
2
 
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
+ var core = require('@gem-sdk/core');
4
5
 
5
6
  const DropElement = ()=>{
7
+ const editingPageType = core.useShopStore((s)=>s.pageType);
6
8
  const dispatchEventBuildWithSectionActiveTab = (value)=>{
7
9
  const event = new CustomEvent('editor:sidebar:build-with-section-active-tab', {
8
10
  bubbles: true,
@@ -12,6 +14,15 @@ const DropElement = ()=>{
12
14
  });
13
15
  window.dispatchEvent(event);
14
16
  };
17
+ const dispatchEventBuildWithTemplateActiveTab = (value)=>{
18
+ const event = new CustomEvent('editor:sidebar:build-with-template-active-tab', {
19
+ bubbles: true,
20
+ detail: {
21
+ value
22
+ }
23
+ });
24
+ window.dispatchEvent(event);
25
+ };
15
26
  const handleClickGenerate = (e)=>{
16
27
  const event = new CustomEvent('editor:sidebar:click-img-to-layout-gallery-btn', e);
17
28
  window.dispatchEvent(event);
@@ -100,22 +111,30 @@ const DropElement = ()=>{
100
111
  children: [
101
112
  /*#__PURE__*/ jsxRuntime.jsx("div", {
102
113
  className: "gp-text-16 gp-font-medium gp-mb-4 gp-text-[#212121]",
103
- children: "Start with Sections from sidebar"
114
+ children: editingPageType === 'GP_FUNNEL_PAGE' ? 'Start building with Sections/Elements or' : 'Start with Sections from sidebar'
104
115
  }),
105
116
  /*#__PURE__*/ jsxRuntime.jsxs("div", {
106
- className: "gp-flex gp-w-[291px] gp-justify-between",
117
+ className: "gp-flex gp-gap-3 gp-justify-between",
107
118
  children: [
108
119
  /*#__PURE__*/ jsxRuntime.jsx("button", {
109
120
  "data-button-add-section": true,
110
- onClick: ()=>dispatchEventBuildWithSectionActiveTab(true),
111
- className: "gp-flex gp-h-[40px] gp-w-[136px] gp-items-center gp-font-medium gp-justify-center gp-rounded-[8px] gp-bg-[#1C1C1C] gp-text-[14px] gp-text-white hover:gp-bg-[#3B3B3B]",
112
- children: "Add sections"
121
+ onClick: ()=>{
122
+ if (editingPageType === 'GP_FUNNEL_PAGE') {
123
+ dispatchEventBuildWithTemplateActiveTab('funnelExisting');
124
+ } else dispatchEventBuildWithSectionActiveTab(true);
125
+ },
126
+ className: "gp-flex gp-h-[40px] gp-px-6 gp-items-center gp-font-medium gp-justify-center gp-rounded-[8px] gp-bg-[#1C1C1C] gp-text-[14px] gp-text-white hover:gp-bg-[#3B3B3B]",
127
+ children: editingPageType === 'GP_FUNNEL_PAGE' ? 'Use existing page designs' : 'Add sections'
113
128
  }),
114
129
  /*#__PURE__*/ jsxRuntime.jsx("button", {
115
130
  "data-button-add-elements": true,
116
- onClick: ()=>dispatchEventBuildWithSectionActiveTab(false),
117
- className: "gp-flex gp-h-[40px] gp-w-[136px] gp-items-center gp-font-medium gp-justify-center gp-rounded-[8px] gp-bg-[#f4f4f4] gp-text-[14px] gp-text-[#212121] hover:gp-bg-[#E2E2E2]",
118
- children: "Add elements"
131
+ onClick: ()=>{
132
+ if (editingPageType === 'GP_FUNNEL_PAGE') {
133
+ dispatchEventBuildWithTemplateActiveTab('templates');
134
+ } else dispatchEventBuildWithSectionActiveTab(false);
135
+ },
136
+ className: "gp-flex gp-h-[40px] gp-px-6 gp-items-center gp-font-medium gp-justify-center gp-rounded-[8px] gp-bg-[#f4f4f4] gp-text-[14px] gp-text-[#212121] hover:gp-bg-[#E2E2E2]",
137
+ children: editingPageType === 'GP_FUNNEL_PAGE' ? 'Explore templates' : 'Add elements'
119
138
  })
120
139
  ]
121
140
  }),
@@ -406,6 +406,7 @@ const Toolbar = ()=>{
406
406
  if (!value || !currentComponentActive.current) {
407
407
  return;
408
408
  }
409
+ let isClickProcessing = false;
409
410
  const selector = getSelectorComponent({
410
411
  ...currentComponentActive.current
411
412
  });
@@ -414,6 +415,7 @@ const Toolbar = ()=>{
414
415
  const $parents = $component?.querySelectorAll('[data-toolbar-parent]');
415
416
  if ($parents.length) {
416
417
  const onHover = ($parent)=>{
418
+ if (isClickProcessing) return;
417
419
  const uid = $parent.getAttribute('data-parent-uid');
418
420
  if (!uid) return;
419
421
  const $parentComponents = document.body.querySelector('#storefront')?.querySelectorAll(`[data-uid="${uid}"]`);
@@ -442,6 +444,7 @@ const Toolbar = ()=>{
442
444
  }
443
445
  };
444
446
  const onClick = async ($parent)=>{
447
+ isClickProcessing = true;
445
448
  const uid = $parent.getAttribute('data-parent-uid');
446
449
  if (!uid) return;
447
450
  const isElementInsideProduct = async ()=>{
@@ -473,6 +476,9 @@ const Toolbar = ()=>{
473
476
  });
474
477
  outHover($parent);
475
478
  window.dispatchEvent(event);
479
+ setTimeout(()=>{
480
+ isClickProcessing = false;
481
+ }, 0);
476
482
  };
477
483
  $parents.forEach(($parent)=>{
478
484
  $parent.addEventListener('mouseover', ()=>onHover($parent));
@@ -1,6 +1,8 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { useShopStore } from '@gem-sdk/core';
2
3
 
3
4
  const DropElement = ()=>{
5
+ const editingPageType = useShopStore((s)=>s.pageType);
4
6
  const dispatchEventBuildWithSectionActiveTab = (value)=>{
5
7
  const event = new CustomEvent('editor:sidebar:build-with-section-active-tab', {
6
8
  bubbles: true,
@@ -10,6 +12,15 @@ const DropElement = ()=>{
10
12
  });
11
13
  window.dispatchEvent(event);
12
14
  };
15
+ const dispatchEventBuildWithTemplateActiveTab = (value)=>{
16
+ const event = new CustomEvent('editor:sidebar:build-with-template-active-tab', {
17
+ bubbles: true,
18
+ detail: {
19
+ value
20
+ }
21
+ });
22
+ window.dispatchEvent(event);
23
+ };
13
24
  const handleClickGenerate = (e)=>{
14
25
  const event = new CustomEvent('editor:sidebar:click-img-to-layout-gallery-btn', e);
15
26
  window.dispatchEvent(event);
@@ -98,22 +109,30 @@ const DropElement = ()=>{
98
109
  children: [
99
110
  /*#__PURE__*/ jsx("div", {
100
111
  className: "gp-text-16 gp-font-medium gp-mb-4 gp-text-[#212121]",
101
- children: "Start with Sections from sidebar"
112
+ children: editingPageType === 'GP_FUNNEL_PAGE' ? 'Start building with Sections/Elements or' : 'Start with Sections from sidebar'
102
113
  }),
103
114
  /*#__PURE__*/ jsxs("div", {
104
- className: "gp-flex gp-w-[291px] gp-justify-between",
115
+ className: "gp-flex gp-gap-3 gp-justify-between",
105
116
  children: [
106
117
  /*#__PURE__*/ jsx("button", {
107
118
  "data-button-add-section": true,
108
- onClick: ()=>dispatchEventBuildWithSectionActiveTab(true),
109
- className: "gp-flex gp-h-[40px] gp-w-[136px] gp-items-center gp-font-medium gp-justify-center gp-rounded-[8px] gp-bg-[#1C1C1C] gp-text-[14px] gp-text-white hover:gp-bg-[#3B3B3B]",
110
- children: "Add sections"
119
+ onClick: ()=>{
120
+ if (editingPageType === 'GP_FUNNEL_PAGE') {
121
+ dispatchEventBuildWithTemplateActiveTab('funnelExisting');
122
+ } else dispatchEventBuildWithSectionActiveTab(true);
123
+ },
124
+ className: "gp-flex gp-h-[40px] gp-px-6 gp-items-center gp-font-medium gp-justify-center gp-rounded-[8px] gp-bg-[#1C1C1C] gp-text-[14px] gp-text-white hover:gp-bg-[#3B3B3B]",
125
+ children: editingPageType === 'GP_FUNNEL_PAGE' ? 'Use existing page designs' : 'Add sections'
111
126
  }),
112
127
  /*#__PURE__*/ jsx("button", {
113
128
  "data-button-add-elements": true,
114
- onClick: ()=>dispatchEventBuildWithSectionActiveTab(false),
115
- className: "gp-flex gp-h-[40px] gp-w-[136px] gp-items-center gp-font-medium gp-justify-center gp-rounded-[8px] gp-bg-[#f4f4f4] gp-text-[14px] gp-text-[#212121] hover:gp-bg-[#E2E2E2]",
116
- children: "Add elements"
129
+ onClick: ()=>{
130
+ if (editingPageType === 'GP_FUNNEL_PAGE') {
131
+ dispatchEventBuildWithTemplateActiveTab('templates');
132
+ } else dispatchEventBuildWithSectionActiveTab(false);
133
+ },
134
+ className: "gp-flex gp-h-[40px] gp-px-6 gp-items-center gp-font-medium gp-justify-center gp-rounded-[8px] gp-bg-[#f4f4f4] gp-text-[14px] gp-text-[#212121] hover:gp-bg-[#E2E2E2]",
135
+ children: editingPageType === 'GP_FUNNEL_PAGE' ? 'Explore templates' : 'Add elements'
117
136
  })
118
137
  ]
119
138
  }),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gem-sdk/pages",
3
- "version": "2.1.21",
3
+ "version": "2.1.27-staging.22",
4
4
  "license": "MIT",
5
5
  "sideEffects": false,
6
6
  "main": "dist/cjs/index.js",
@@ -26,10 +26,10 @@
26
26
  "next": "latest"
27
27
  },
28
28
  "devDependencies": {
29
- "@gem-sdk/core": "2.1.21",
30
- "@gem-sdk/plugin-cookie-bar": "2.1.0",
31
- "@gem-sdk/plugin-quick-view": "2.1.0",
32
- "@gem-sdk/plugin-sticky-add-to-cart": "2.1.0"
29
+ "@gem-sdk/core": "2.1.27-staging.21",
30
+ "@gem-sdk/plugin-cookie-bar": "2.1.27-staging.0",
31
+ "@gem-sdk/plugin-quick-view": "2.1.27-staging.0",
32
+ "@gem-sdk/plugin-sticky-add-to-cart": "2.1.27-staging.0"
33
33
  },
34
34
  "peerDependencies": {
35
35
  "next": ">=13"