@sonic-equipment/ui 183.0.0 → 184.0.0

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.
@@ -7,7 +7,7 @@ import { Header } from './header.js';
7
7
  function ConnectedHeader({ className, source, }) {
8
8
  const cultureCode = useCultureCode();
9
9
  const { data } = useFetchNavigationLinks({ cultureCode, source });
10
- return (jsx(Header, { className: className, links: data?.header ?? [], source: source, sticky: true }));
10
+ return (jsx(Header, { className: className, links: data?.header ?? [], sticky: true }));
11
11
  }
12
12
 
13
13
  export { ConnectedHeader };
@@ -1,9 +1,7 @@
1
1
  import { NavigationLink } from '../shared/api/bff/model/bff.model';
2
- import { NavigationLinkSource } from '../shared/api/bff/services/bff-service';
3
2
  export interface HeaderProps {
4
3
  className?: string;
5
4
  links: NavigationLink[];
6
- source: NavigationLinkSource;
7
5
  sticky?: boolean;
8
6
  }
9
- export declare function Header({ className, links, source, sticky }: HeaderProps): import("react/jsx-runtime").JSX.Element;
7
+ export declare function Header({ className, links, sticky }: HeaderProps): import("react/jsx-runtime").JSX.Element;
@@ -23,7 +23,7 @@ import { NavigationLinkList } from './link-list/navigation-link-list.js';
23
23
  import { SonicLogo } from './sonic-logo/sonic-logo.js';
24
24
  import styles from './header.module.css.js';
25
25
 
26
- function Header({ className, links, source, sticky }) {
26
+ function Header({ className, links, sticky }) {
27
27
  const [activeSubmenu, setActiveSubmenu] = useState();
28
28
  const t = useFormattedMessage();
29
29
  const isXl = useIsBreakpoint('xl');
@@ -66,7 +66,7 @@ function Header({ className, links, source, sticky }) {
66
66
  if (activeSubmenu)
67
67
  setDesktopNavigationOpen(true);
68
68
  }, [activeSubmenu, setDesktopNavigationOpen]);
69
- return (jsxs(Fragment, { children: [jsx("header", { ref: headerRef, className: clsx(styles['header'], sticky && styles['sticky'], className), "data-test-selector": "pageHeader", children: jsx(HeaderLayout, { hamburgerButton: jsx(HamburgerButton, { "aria-controls": "mobile-navigation", "data-test-selector": "pageHeaderHamburgerButton", isActive: mobileNavigationOpen, onActiveChange: toggleMobileNavigation }), hasDrawersOpen: hasDrawersOpen, logo: jsx(SonicLogo, { "data-test-selector": "pageHeaderLogo", href: source === 'shop' ? config.HOME_PAGE_URL : '/', title: t('Home') }), mainNavigation: jsx(NavigationLinkList, { activeLink: activeSubmenu, "data-test-selector": "pageHeaderMainNavigation", links: links, onSubmenuToggle: link => toggleActiveSubmenu(link) }), navigationActions: jsxs(Fragment, { children: [jsx(ConnectedAccountButton, { "data-test-selector": "pageHeaderAccountButton", href: PATHS.ACCOUNT }), jsx(ConnectedFavoritesButton, { "data-test-selector": "pageHeaderFavoritesButton", href: PATHS.FAVORITES }), jsx(ConnectedCartButton, { "data-test-selector": "pageHeaderCartButton", href: PATHS.CART })] }), search: jsx(SearchButton, { "aria-controls": "global-search", "data-test-selector": "pageHeaderSearchButton", isActive: searchOpen, onActiveChange: toggleSearch }) }) }), jsx(SearchDrawer, { groupId: searchGroupId, instanceId: searchInstanceId }), !isXl && (jsx(MobileNavigationDrawer, { groupId: mobileNavigationDrawer.groupId, instanceId: mobileNavigationDrawer.instanceId, links: links })), isXl && (jsx(DesktopNavigationDrawer, { groupId: desktopNavigationDrawer.groupId, instanceId: desktopNavigationDrawer.instanceId, onClosed: () => setActiveSubmenu(undefined), submenu: activeSubmenu }))] }));
69
+ return (jsxs(Fragment, { children: [jsx("header", { ref: headerRef, className: clsx(styles['header'], sticky && styles['sticky'], className), "data-test-selector": "pageHeader", children: jsx(HeaderLayout, { hamburgerButton: jsx(HamburgerButton, { "aria-controls": "mobile-navigation", "data-test-selector": "pageHeaderHamburgerButton", isActive: mobileNavigationOpen, onActiveChange: toggleMobileNavigation }), hasDrawersOpen: hasDrawersOpen, logo: jsx(SonicLogo, { "data-test-selector": "pageHeaderLogo", href: config.HOME_PAGE_URL, title: t('Home') }), mainNavigation: jsx(NavigationLinkList, { activeLink: activeSubmenu, "data-test-selector": "pageHeaderMainNavigation", links: links, onSubmenuToggle: link => toggleActiveSubmenu(link) }), navigationActions: jsxs(Fragment, { children: [jsx(ConnectedAccountButton, { "data-test-selector": "pageHeaderAccountButton", href: PATHS.ACCOUNT }), jsx(ConnectedFavoritesButton, { "data-test-selector": "pageHeaderFavoritesButton", href: PATHS.FAVORITES }), jsx(ConnectedCartButton, { "data-test-selector": "pageHeaderCartButton", href: PATHS.CART })] }), search: jsx(SearchButton, { "aria-controls": "global-search", "data-test-selector": "pageHeaderSearchButton", isActive: searchOpen, onActiveChange: toggleSearch }) }) }), jsx(SearchDrawer, { groupId: searchGroupId, instanceId: searchInstanceId }), !isXl && (jsx(MobileNavigationDrawer, { groupId: mobileNavigationDrawer.groupId, instanceId: mobileNavigationDrawer.instanceId, links: links })), isXl && (jsx(DesktopNavigationDrawer, { groupId: desktopNavigationDrawer.groupId, instanceId: desktopNavigationDrawer.instanceId, onClosed: () => setActiveSubmenu(undefined), submenu: activeSubmenu }))] }));
70
70
  }
71
71
 
72
72
  export { Header };
@@ -13,6 +13,7 @@ function CheckoutPageLayout({ actions, children, mobileSummary, overview, }) {
13
13
  const topRef = useRef(null);
14
14
  const bottomRef = useRef(null);
15
15
  const headerHeight = useWatchCssProperty('--header-bottom');
16
+ const isObservingIntersection = Boolean(headerHeight);
16
17
  const isScrolledBeyond = useIsScrolledBeyondElement(bottomRef.current || undefined);
17
18
  const observables = useMemo(() => [
18
19
  {
@@ -27,7 +28,7 @@ function CheckoutPageLayout({ actions, children, mobileSummary, overview, }) {
27
28
  isDisabled: isXXL,
28
29
  observables,
29
30
  });
30
- return (jsxs("div", { className: styles['checkout-page-layout'], children: [!isXXL && (jsxs(Fragment, { children: [mobileSummary, jsx("div", { ref: topRef }), jsxs("div", { className: clsx(styles['top-actions'], styles.actions), children: [actions?.primary, actions?.secondary] }), !isIntersecting && !isScrolledBeyond && (jsxs("div", { className: clsx(styles['top-actions-sticky'], styles.actions), children: [actions?.primary, actions?.secondary] }))] })), jsxs("div", { className: styles.wrapper, children: [jsx("div", { className: styles.main, children: children }), jsx("div", { className: styles.side, children: jsxs("div", { className: styles['sticky-side'], children: [overview, jsxs("div", { ref: bottomRef, className: styles.actions, children: [actions?.primary, actions?.secondary] })] }) })] })] }));
31
+ return (jsxs("div", { className: styles['checkout-page-layout'], children: [!isXXL && (jsxs(Fragment, { children: [mobileSummary, jsx("div", { ref: topRef }), jsxs("div", { className: clsx(styles['top-actions'], styles.actions), children: [actions?.primary, actions?.secondary] }), isObservingIntersection && !isIntersecting && !isScrolledBeyond && (jsxs("div", { className: clsx(styles['top-actions-sticky'], styles.actions), children: [actions?.primary, actions?.secondary] }))] })), jsxs("div", { className: styles.wrapper, children: [jsx("div", { className: styles.main, children: children }), jsx("div", { className: styles.side, children: jsxs("div", { className: styles['sticky-side'], children: [overview, jsxs("div", { ref: bottomRef, className: styles.actions, children: [actions?.primary, actions?.secondary] })] }) })] })] }));
31
32
  }
32
33
 
33
34
  export { CheckoutPageLayout };
@@ -3,7 +3,15 @@ import { useState, useEffect } from 'react';
3
3
  import { getCssPropertyValue } from '../utils/css.js';
4
4
 
5
5
  function useWatchCssProperty(property) {
6
- const [value, setValue] = useState(() => getCssPropertyValue(property));
6
+ const [value, setValue] = useState(() => {
7
+ try {
8
+ return getCssPropertyValue(property);
9
+ }
10
+ catch {
11
+ // If the property can not be retrieved, return undefined
12
+ return;
13
+ }
14
+ });
7
15
  useEffect(() => {
8
16
  if (typeof MutationObserver === 'undefined' ||
9
17
  typeof document === 'undefined')
package/dist/styles.css CHANGED
@@ -6331,7 +6331,9 @@ button.swiper-pagination-bullet {
6331
6331
  }
6332
6332
 
6333
6333
  :root {
6334
- --header-bottom: calc(var(--announcements-height) + var(--header-height));
6334
+ --header-bottom: calc(
6335
+ var(--announcements-height, 0px) + var(--header-height, 0px)
6336
+ );
6335
6337
  }
6336
6338
 
6337
6339
  .header-layout-module-uGT3X {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sonic-equipment/ui",
3
- "version": "183.0.0",
3
+ "version": "184.0.0",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "engines": {