@redneckz/wildless-cms-uni-blocks 0.8.11 → 0.8.13

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.
Files changed (35) hide show
  1. package/bundle/bundle.umd.js +12 -21
  2. package/bundle/bundle.umd.min.js +1 -1
  3. package/dist/components/Tabs/Tabs.js +4 -10
  4. package/dist/components/Tabs/Tabs.js.map +1 -1
  5. package/dist/services/BlockRouter/BlockRouter.js +4 -1
  6. package/dist/services/BlockRouter/BlockRouter.js.map +1 -1
  7. package/dist/ui-kit/BlockWrapper.js +3 -9
  8. package/dist/ui-kit/BlockWrapper.js.map +1 -1
  9. package/lib/components/Tabs/Tabs.js +4 -10
  10. package/lib/components/Tabs/Tabs.js.map +1 -1
  11. package/lib/services/BlockRouter/BlockRouter.js +4 -1
  12. package/lib/services/BlockRouter/BlockRouter.js.map +1 -1
  13. package/lib/ui-kit/BlockWrapper.js +3 -9
  14. package/lib/ui-kit/BlockWrapper.js.map +1 -1
  15. package/mobile/bundle/bundle.umd.js +8 -11
  16. package/mobile/bundle/bundle.umd.min.js +1 -1
  17. package/mobile/dist/components/Tabs/Tabs.js +4 -10
  18. package/mobile/dist/components/Tabs/Tabs.js.map +1 -1
  19. package/mobile/dist/services/BlockRouter/BlockRouter.js +4 -1
  20. package/mobile/dist/services/BlockRouter/BlockRouter.js.map +1 -1
  21. package/mobile/dist/ui-kit/BlockWrapper.js +3 -9
  22. package/mobile/dist/ui-kit/BlockWrapper.js.map +1 -1
  23. package/mobile/lib/components/Tabs/Tabs.js +4 -10
  24. package/mobile/lib/components/Tabs/Tabs.js.map +1 -1
  25. package/mobile/lib/services/BlockRouter/BlockRouter.js +4 -1
  26. package/mobile/lib/services/BlockRouter/BlockRouter.js.map +1 -1
  27. package/mobile/lib/ui-kit/BlockWrapper.js +3 -9
  28. package/mobile/lib/ui-kit/BlockWrapper.js.map +1 -1
  29. package/mobile/src/components/Tabs/Tabs.tsx +5 -23
  30. package/mobile/src/services/BlockRouter/BlockRouter.ts +5 -5
  31. package/mobile/src/ui-kit/BlockWrapper.tsx +7 -12
  32. package/package.json +1 -1
  33. package/src/components/Tabs/Tabs.tsx +5 -23
  34. package/src/services/BlockRouter/BlockRouter.ts +5 -5
  35. package/src/ui-kit/BlockWrapper.tsx +7 -12
@@ -16,16 +16,10 @@ exports.blockStyles = {
16
16
  exports.BlockWrapper = (0, uni_jsx_1.JSX)(({ className = '', version = 'primary', block, tag = 'section', role, children }) => {
17
17
  const Tag = tag;
18
18
  const ref = (0, useBlockIntersectionObserver_1.useBlockIntersectionObserver)(block);
19
- const [isVisible, setVisible] = (0, hooks_1.useState)(true);
19
+ const [isHidden, setHidden] = (0, hooks_1.useState)(false);
20
20
  (0, hooks_1.useEffect)(() => defaultEventBus_1.defaultEventBus.subscribe('tab', (event) => {
21
- if (event.type === 'group') {
22
- const hasSettings = block?.labels?.length || block?.anchor;
23
- setVisible(event.label ? !hasSettings || Boolean(block?.labels?.includes(event.label)) : true);
24
- }
25
- else {
26
- setVisible(true);
27
- }
21
+ setHidden(Boolean(event.type === 'group' && event.label && block?.labels?.includes(event.label)));
28
22
  }), [block]);
29
- return isVisible ? ((0, jsx_runtime_1.jsx)(Tag, { className: (0, style_1.style)('group', exports.blockStyles[version], className), ...(version ? { 'data-ver': version } : {}), ...(block?.anchor ? { id: block.anchor, ref } : {}), role: role, children: children })) : null;
23
+ return ((0, jsx_runtime_1.jsx)(Tag, { className: (0, style_1.style)('group', exports.blockStyles[version], isHidden ? 'hidden' : '', className), ...(version ? { 'data-ver': version } : {}), ...(block?.anchor ? { id: block.anchor, ref } : {}), role: role, children: children }));
30
24
  });
31
25
  //# sourceMappingURL=BlockWrapper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BlockWrapper.js","sourceRoot":"","sources":["../../src/ui-kit/BlockWrapper.tsx"],"names":[],"mappings":";;;AAAA,+CAAwC;AACxC,uDAAkE;AAClE,iEAA8D;AAG9D,uGAAoG;AACpG,0CAAuC;AAO1B,QAAA,WAAW,GAAiC;IACvD,OAAO,EAAE,4BAA4B;IACrC,SAAS,EAAE,4BAA4B;IACvC,IAAI,EAAE,mCAAmC;IACzC,WAAW,EAAE,kCAAkC;IAC/C,EAAE,EAAE,EAAE;CACP,CAAC;AAEW,QAAA,YAAY,GAAG,IAAA,aAAG,EAC7B,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,OAAO,GAAG,SAAS,EAAE,KAAK,EAAE,GAAG,GAAG,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;IAClF,MAAM,GAAG,GAAQ,GAAG,CAAC;IAErB,MAAM,GAAG,GAAG,IAAA,2DAA4B,EAAC,KAAK,CAAC,CAAC;IAEhD,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,IAAA,gBAAQ,EAAC,IAAI,CAAC,CAAC;IAC/C,IAAA,iBAAS,EACP,GAAG,EAAE,CACH,iCAAe,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;QACzC,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;YAC1B,MAAM,WAAW,GAAG,KAAK,EAAE,MAAM,EAAE,MAAM,IAAI,KAAK,EAAE,MAAM,CAAC;YAC3D,UAAU,CACR,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CACnF,CAAC;SACH;aAAM;YACL,UAAU,CAAC,IAAI,CAAC,CAAC;SAClB;IACH,CAAC,CAAC,EACJ,CAAC,KAAK,CAAC,CACR,CAAC;IAEF,OAAO,SAAS,CAAC,CAAC,CAAC,CACjB,uBAAC,GAAG,IACF,SAAS,EAAE,IAAA,aAAK,EAAC,OAAO,EAAE,mBAAW,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,KACtD,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KACxC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EACpD,IAAI,EAAE,IAAI,YAET,QAAQ,GACL,CACP,CAAC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC,CACF,CAAC"}
1
+ {"version":3,"file":"BlockWrapper.js","sourceRoot":"","sources":["../../src/ui-kit/BlockWrapper.tsx"],"names":[],"mappings":";;;AAAA,+CAAwC;AACxC,uDAAkE;AAClE,iEAA8D;AAG9D,uGAAoG;AACpG,0CAAuC;AAO1B,QAAA,WAAW,GAAiC;IACvD,OAAO,EAAE,4BAA4B;IACrC,SAAS,EAAE,4BAA4B;IACvC,IAAI,EAAE,mCAAmC;IACzC,WAAW,EAAE,kCAAkC;IAC/C,EAAE,EAAE,EAAE;CACP,CAAC;AAEW,QAAA,YAAY,GAAG,IAAA,aAAG,EAC7B,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,OAAO,GAAG,SAAS,EAAE,KAAK,EAAE,GAAG,GAAG,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;IAClF,MAAM,GAAG,GAAQ,GAAG,CAAC;IAErB,MAAM,GAAG,GAAG,IAAA,2DAA4B,EAAC,KAAK,CAAC,CAAC;IAEhD,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAC9C,IAAA,iBAAS,EACP,GAAG,EAAE,CACH,iCAAe,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;QACzC,SAAS,CACP,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CACvF,CAAC;IACJ,CAAC,CAAC,EACJ,CAAC,KAAK,CAAC,CACR,CAAC;IAEF,OAAO,CACL,uBAAC,GAAG,IACF,SAAS,EAAE,IAAA,aAAK,EAAC,OAAO,EAAE,mBAAW,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC,KAChF,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KACxC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EACpD,IAAI,EAAE,IAAI,YAET,QAAQ,GACL,CACP,CAAC;AACJ,CAAC,CACF,CAAC"}
@@ -8,16 +8,11 @@ import { ScrollableTabs } from './ScrollableTabs.js';
8
8
  export const Tabs = JSX((props) => {
9
9
  const { className = '', tabs, showCounter, isSticky, tabsMode, ...rest } = props;
10
10
  const [currentTab, setCurrentTab] = useState(tabs ? tabs[0] : undefined);
11
- useEffect(() => defaultEventBus.subscribe('tab', (event) => {
12
- const tab = tabs?.find(checkTab(event));
13
- if (event.type === 'link' && tab) {
14
- setCurrentTab(tab);
11
+ useEffect(() => {
12
+ if (currentTab?.type === 'group') {
13
+ defaultEventBus.subject('tab', { type: currentTab.type, label: currentTab.ref });
15
14
  }
16
- return [];
17
- }), [tabs]);
18
- useEffect(() => currentTab?.type === 'group'
19
- ? defaultEventBus.subject('tab', { type: currentTab.type, label: currentTab.ref })
20
- : undefined, [currentTab]);
15
+ }, [currentTab]);
21
16
  const handleClick = useCallback((selectedTab) => {
22
17
  if (selectedTab?.type === 'group') {
23
18
  defaultEventBus.fire('tab', { type: selectedTab.type, label: selectedTab.ref });
@@ -31,5 +26,4 @@ export const Tabs = JSX((props) => {
31
26
  ...rest,
32
27
  }))) }));
33
28
  });
34
- const checkTab = (event) => (_) => _.type === 'link' && _.href === `#${event.label}`;
35
29
  //# sourceMappingURL=Tabs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Tabs.js","sourceRoot":"","sources":["../../../src/components/Tabs/Tabs.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEjE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAUlD,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,CAAiB,CAAC,KAAK,EAAE,EAAE;IAChD,MAAM,EAAE,SAAS,GAAG,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IAEjF,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAEzE,SAAS,CACP,GAAG,EAAE,CACH,eAAe,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;QACzC,MAAM,GAAG,GAAG,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACxC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,GAAG,EAAE;YAChC,aAAa,CAAC,GAAG,CAAC,CAAC;SACpB;QAED,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,EACJ,CAAC,IAAI,CAAC,CACP,CAAC;IAEF,SAAS,CACP,GAAG,EAAE,CACH,UAAU,EAAE,IAAI,KAAK,OAAO;QAC1B,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,GAAG,EAAE,CAAC;QAClF,CAAC,CAAC,SAAS,EACf,CAAC,UAAU,CAAC,CACb,CAAC;IAEF,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,WAAoB,EAAE,EAAE;QACvD,IAAI,WAAW,EAAE,IAAI,KAAK,OAAO,EAAE;YACjC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC;SACjF;QACD,aAAa,CAAC,WAAW,CAAC,CAAC;IAC7B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACL,KAAC,YAAY,IACX,SAAS,EAAE,2CACT,QAAQ,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EACpC,IAAI,SAAS,EAAE,EACf,IAAI,EAAC,SAAS,KACV,IAAI,YAEP,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,CAC3B,KAAC,cAAc,IACb,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,KACpB,IAAI,GACR,CACH,CAAC,CAAC,CAAC,CACF,IAAI,EAAE,GAAG,CACP,SAAS,CAAC;YACR,OAAO,EAAE,WAAW;YACpB,UAAU;YACV,WAAW;YACX,GAAG,IAAI;SACR,CAAC,CACH,CACF,GACY,CAChB,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,QAAQ,GAAG,CAAC,KAAyB,EAAE,EAAE,CAAC,CAAC,CAAU,EAAE,EAAE,CAC7D,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"Tabs.js","sourceRoot":"","sources":["../../../src/components/Tabs/Tabs.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEjE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAUlD,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,CAAiB,CAAC,KAAK,EAAE,EAAE;IAChD,MAAM,EAAE,SAAS,GAAG,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IAEjF,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAEzE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,UAAU,EAAE,IAAI,KAAK,OAAO,EAAE;YAChC,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC;SAClF;IACH,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,WAAoB,EAAE,EAAE;QACvD,IAAI,WAAW,EAAE,IAAI,KAAK,OAAO,EAAE;YACjC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC;SACjF;QACD,aAAa,CAAC,WAAW,CAAC,CAAC;IAC7B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACL,KAAC,YAAY,IACX,SAAS,EAAE,2CACT,QAAQ,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EACpC,IAAI,SAAS,EAAE,EACf,IAAI,EAAC,SAAS,KACV,IAAI,YAEP,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,CAC3B,KAAC,cAAc,IACb,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,KACpB,IAAI,GACR,CACH,CAAC,CAAC,CAAC,CACF,IAAI,EAAE,GAAG,CACP,SAAS,CAAC;YACR,OAAO,EAAE,WAAW;YACpB,UAAU;YACV,WAAW;YACX,GAAG,IAAI;SACR,CAAC,CACH,CACF,GACY,CAChB,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -1,5 +1,8 @@
1
1
  const normalizeAnchor = (anchor) => anchor?.replace('#', '') || '';
2
2
  export function trackBlock(block) {
3
- globalThis.history?.replaceState(globalThis.history?.state, '', `#${normalizeAnchor(block?.anchor)}`);
3
+ const hash = `#${normalizeAnchor(block?.anchor)}`;
4
+ if (globalThis.location?.hash !== hash) {
5
+ globalThis.history?.replaceState(globalThis.history?.state, '', hash);
6
+ }
4
7
  }
5
8
  //# sourceMappingURL=BlockRouter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BlockRouter.js","sourceRoot":"","sources":["../../../src/services/BlockRouter/BlockRouter.ts"],"names":[],"mappings":"AAEA,MAAM,eAAe,GAAG,CAAC,MAAe,EAAE,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;AAE5E,MAAM,UAAU,UAAU,CAAC,KAAgB;IACzC,UAAU,CAAC,OAAO,EAAE,YAAY,CAC9B,UAAU,CAAC,OAAO,EAAE,KAAK,EACzB,EAAE,EACF,IAAI,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CACrC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"BlockRouter.js","sourceRoot":"","sources":["../../../src/services/BlockRouter/BlockRouter.ts"],"names":[],"mappings":"AAEA,MAAM,eAAe,GAAG,CAAC,MAAe,EAAE,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;AAE5E,MAAM,UAAU,UAAU,CAAC,KAAgB;IACzC,MAAM,IAAI,GAAG,IAAI,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;IAElD,IAAI,UAAU,CAAC,QAAQ,EAAE,IAAI,KAAK,IAAI,EAAE;QACtC,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;KACvE;AACH,CAAC"}
@@ -14,16 +14,10 @@ export const blockStyles = {
14
14
  export const BlockWrapper = JSX(({ className = '', version = 'primary', block, tag = 'section', role, children }) => {
15
15
  const Tag = tag;
16
16
  const ref = useBlockIntersectionObserver(block);
17
- const [isVisible, setVisible] = useState(true);
17
+ const [isHidden, setHidden] = useState(false);
18
18
  useEffect(() => defaultEventBus.subscribe('tab', (event) => {
19
- if (event.type === 'group') {
20
- const hasSettings = block?.labels?.length || block?.anchor;
21
- setVisible(event.label ? !hasSettings || Boolean(block?.labels?.includes(event.label)) : true);
22
- }
23
- else {
24
- setVisible(true);
25
- }
19
+ setHidden(Boolean(event.type === 'group' && event.label && block?.labels?.includes(event.label)));
26
20
  }), [block]);
27
- return isVisible ? (_jsx(Tag, { className: style('group', blockStyles[version], className), ...(version ? { 'data-ver': version } : {}), ...(block?.anchor ? { id: block.anchor, ref } : {}), role: role, children: children })) : null;
21
+ return (_jsx(Tag, { className: style('group', blockStyles[version], isHidden ? 'hidden' : '', className), ...(version ? { 'data-ver': version } : {}), ...(block?.anchor ? { id: block.anchor, ref } : {}), role: role, children: children }));
28
22
  });
29
23
  //# sourceMappingURL=BlockWrapper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BlockWrapper.js","sourceRoot":"","sources":["../../src/ui-kit/BlockWrapper.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAG9D,OAAO,EAAE,4BAA4B,EAAE,MAAM,sDAAsD,CAAC;AACpG,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAOvC,MAAM,CAAC,MAAM,WAAW,GAAiC;IACvD,OAAO,EAAE,4BAA4B;IACrC,SAAS,EAAE,4BAA4B;IACvC,IAAI,EAAE,mCAAmC;IACzC,WAAW,EAAE,kCAAkC;IAC/C,EAAE,EAAE,EAAE;CACP,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAC7B,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,OAAO,GAAG,SAAS,EAAE,KAAK,EAAE,GAAG,GAAG,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;IAClF,MAAM,GAAG,GAAQ,GAAG,CAAC;IAErB,MAAM,GAAG,GAAG,4BAA4B,CAAC,KAAK,CAAC,CAAC;IAEhD,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/C,SAAS,CACP,GAAG,EAAE,CACH,eAAe,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;QACzC,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;YAC1B,MAAM,WAAW,GAAG,KAAK,EAAE,MAAM,EAAE,MAAM,IAAI,KAAK,EAAE,MAAM,CAAC;YAC3D,UAAU,CACR,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CACnF,CAAC;SACH;aAAM;YACL,UAAU,CAAC,IAAI,CAAC,CAAC;SAClB;IACH,CAAC,CAAC,EACJ,CAAC,KAAK,CAAC,CACR,CAAC;IAEF,OAAO,SAAS,CAAC,CAAC,CAAC,CACjB,KAAC,GAAG,IACF,SAAS,EAAE,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,KACtD,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KACxC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EACpD,IAAI,EAAE,IAAI,YAET,QAAQ,GACL,CACP,CAAC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC,CACF,CAAC"}
1
+ {"version":3,"file":"BlockWrapper.js","sourceRoot":"","sources":["../../src/ui-kit/BlockWrapper.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAG9D,OAAO,EAAE,4BAA4B,EAAE,MAAM,sDAAsD,CAAC;AACpG,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAOvC,MAAM,CAAC,MAAM,WAAW,GAAiC;IACvD,OAAO,EAAE,4BAA4B;IACrC,SAAS,EAAE,4BAA4B;IACvC,IAAI,EAAE,mCAAmC;IACzC,WAAW,EAAE,kCAAkC;IAC/C,EAAE,EAAE,EAAE;CACP,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAC7B,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,OAAO,GAAG,SAAS,EAAE,KAAK,EAAE,GAAG,GAAG,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;IAClF,MAAM,GAAG,GAAQ,GAAG,CAAC;IAErB,MAAM,GAAG,GAAG,4BAA4B,CAAC,KAAK,CAAC,CAAC;IAEhD,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,SAAS,CACP,GAAG,EAAE,CACH,eAAe,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;QACzC,SAAS,CACP,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CACvF,CAAC;IACJ,CAAC,CAAC,EACJ,CAAC,KAAK,CAAC,CACR,CAAC;IAEF,OAAO,CACL,KAAC,GAAG,IACF,SAAS,EAAE,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC,KAChF,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KACxC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EACpD,IAAI,EAAE,IAAI,YAET,QAAQ,GACL,CACP,CAAC;AACJ,CAAC,CACF,CAAC"}
@@ -19,26 +19,11 @@ export const Tabs = JSX<TabsBlockProps>((props) => {
19
19
 
20
20
  const [currentTab, setCurrentTab] = useState(tabs ? tabs[0] : undefined);
21
21
 
22
- useEffect(
23
- () =>
24
- defaultEventBus.subscribe('tab', (event) => {
25
- const tab = tabs?.find(checkTab(event));
26
- if (event.type === 'link' && tab) {
27
- setCurrentTab(tab);
28
- }
29
-
30
- return [];
31
- }),
32
- [tabs],
33
- );
34
-
35
- useEffect(
36
- () =>
37
- currentTab?.type === 'group'
38
- ? defaultEventBus.subject('tab', { type: currentTab.type, label: currentTab.ref })
39
- : undefined,
40
- [currentTab],
41
- );
22
+ useEffect(() => {
23
+ if (currentTab?.type === 'group') {
24
+ defaultEventBus.subject('tab', { type: currentTab.type, label: currentTab.ref });
25
+ }
26
+ }, [currentTab]);
42
27
 
43
28
  const handleClick = useCallback((selectedTab: TabData) => {
44
29
  if (selectedTab?.type === 'group') {
@@ -76,6 +61,3 @@ export const Tabs = JSX<TabsBlockProps>((props) => {
76
61
  </BlockWrapper>
77
62
  );
78
63
  });
79
-
80
- const checkTab = (event: TabActivationEvent) => (_: TabData) =>
81
- _.type === 'link' && _.href === `#${event.label}`;
@@ -3,9 +3,9 @@ import type { BlockDef } from '../../model/ContentPageDef';
3
3
  const normalizeAnchor = (anchor?: string) => anchor?.replace('#', '') || '';
4
4
 
5
5
  export function trackBlock(block?: BlockDef) {
6
- globalThis.history?.replaceState(
7
- globalThis.history?.state,
8
- '',
9
- `#${normalizeAnchor(block?.anchor)}`,
10
- );
6
+ const hash = `#${normalizeAnchor(block?.anchor)}`;
7
+
8
+ if (globalThis.location?.hash !== hash) {
9
+ globalThis.history?.replaceState(globalThis.history?.state, '', hash);
10
+ }
11
11
  }
@@ -25,31 +25,26 @@ export const BlockWrapper = JSX<BlockWrapperProps>(
25
25
 
26
26
  const ref = useBlockIntersectionObserver(block);
27
27
 
28
- const [isVisible, setVisible] = useState(true);
28
+ const [isHidden, setHidden] = useState(false);
29
29
  useEffect(
30
30
  () =>
31
31
  defaultEventBus.subscribe('tab', (event) => {
32
- if (event.type === 'group') {
33
- const hasSettings = block?.labels?.length || block?.anchor;
34
- setVisible(
35
- event.label ? !hasSettings || Boolean(block?.labels?.includes(event.label)) : true,
36
- );
37
- } else {
38
- setVisible(true);
39
- }
32
+ setHidden(
33
+ Boolean(event.type === 'group' && event.label && block?.labels?.includes(event.label)),
34
+ );
40
35
  }),
41
36
  [block],
42
37
  );
43
38
 
44
- return isVisible ? (
39
+ return (
45
40
  <Tag
46
- className={style('group', blockStyles[version], className)}
41
+ className={style('group', blockStyles[version], isHidden ? 'hidden' : '', className)}
47
42
  {...(version ? { 'data-ver': version } : {})}
48
43
  {...(block?.anchor ? { id: block.anchor, ref } : {})}
49
44
  role={role}
50
45
  >
51
46
  {children}
52
47
  </Tag>
53
- ) : null;
48
+ );
54
49
  },
55
50
  );
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redneckz/wildless-cms-uni-blocks",
3
- "version": "0.8.11",
3
+ "version": "0.8.13",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "author": "ЦК",
@@ -19,26 +19,11 @@ export const Tabs = JSX<TabsBlockProps>((props) => {
19
19
 
20
20
  const [currentTab, setCurrentTab] = useState(tabs ? tabs[0] : undefined);
21
21
 
22
- useEffect(
23
- () =>
24
- defaultEventBus.subscribe('tab', (event) => {
25
- const tab = tabs?.find(checkTab(event));
26
- if (event.type === 'link' && tab) {
27
- setCurrentTab(tab);
28
- }
29
-
30
- return [];
31
- }),
32
- [tabs],
33
- );
34
-
35
- useEffect(
36
- () =>
37
- currentTab?.type === 'group'
38
- ? defaultEventBus.subject('tab', { type: currentTab.type, label: currentTab.ref })
39
- : undefined,
40
- [currentTab],
41
- );
22
+ useEffect(() => {
23
+ if (currentTab?.type === 'group') {
24
+ defaultEventBus.subject('tab', { type: currentTab.type, label: currentTab.ref });
25
+ }
26
+ }, [currentTab]);
42
27
 
43
28
  const handleClick = useCallback((selectedTab: TabData) => {
44
29
  if (selectedTab?.type === 'group') {
@@ -76,6 +61,3 @@ export const Tabs = JSX<TabsBlockProps>((props) => {
76
61
  </BlockWrapper>
77
62
  );
78
63
  });
79
-
80
- const checkTab = (event: TabActivationEvent) => (_: TabData) =>
81
- _.type === 'link' && _.href === `#${event.label}`;
@@ -3,9 +3,9 @@ import type { BlockDef } from '../../model/ContentPageDef';
3
3
  const normalizeAnchor = (anchor?: string) => anchor?.replace('#', '') || '';
4
4
 
5
5
  export function trackBlock(block?: BlockDef) {
6
- globalThis.history?.replaceState(
7
- globalThis.history?.state,
8
- '',
9
- `#${normalizeAnchor(block?.anchor)}`,
10
- );
6
+ const hash = `#${normalizeAnchor(block?.anchor)}`;
7
+
8
+ if (globalThis.location?.hash !== hash) {
9
+ globalThis.history?.replaceState(globalThis.history?.state, '', hash);
10
+ }
11
11
  }
@@ -25,31 +25,26 @@ export const BlockWrapper = JSX<BlockWrapperProps>(
25
25
 
26
26
  const ref = useBlockIntersectionObserver(block);
27
27
 
28
- const [isVisible, setVisible] = useState(true);
28
+ const [isHidden, setHidden] = useState(false);
29
29
  useEffect(
30
30
  () =>
31
31
  defaultEventBus.subscribe('tab', (event) => {
32
- if (event.type === 'group') {
33
- const hasSettings = block?.labels?.length || block?.anchor;
34
- setVisible(
35
- event.label ? !hasSettings || Boolean(block?.labels?.includes(event.label)) : true,
36
- );
37
- } else {
38
- setVisible(true);
39
- }
32
+ setHidden(
33
+ Boolean(event.type === 'group' && event.label && block?.labels?.includes(event.label)),
34
+ );
40
35
  }),
41
36
  [block],
42
37
  );
43
38
 
44
- return isVisible ? (
39
+ return (
45
40
  <Tag
46
- className={style('group', blockStyles[version], className)}
41
+ className={style('group', blockStyles[version], isHidden ? 'hidden' : '', className)}
47
42
  {...(version ? { 'data-ver': version } : {})}
48
43
  {...(block?.anchor ? { id: block.anchor, ref } : {})}
49
44
  role={role}
50
45
  >
51
46
  {children}
52
47
  </Tag>
53
- ) : null;
48
+ );
54
49
  },
55
50
  );