UNPKG

@lifi/widget

Version:

LI.FI Widget for cross-chain bridging and swapping. It will drive your multi-chain strategy and attract new users from everywhere.

39 lines 1.79 kB
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime"; import { useLayoutEffect, useRef } from 'react'; import { useLocation } from 'react-router-dom'; import { useDefaultElementId } from '../../hooks/useDefaultElementId.js'; import { useSetHeaderHeight } from '../../stores/header/useHeaderStore.js'; import { createElementId, ElementId } from '../../utils/elements.js'; import { stickyHeaderRoutes } from '../../utils/navigationRoutes.js'; import { Container } from './Header.style.js'; import { NavigationHeader } from './NavigationHeader.js'; import { WalletHeader } from './WalletHeader.js'; export const HeaderContainer = ({ children }) => { const { pathname } = useLocation(); const elementId = useDefaultElementId(); const headerRef = useRef(null); const { setHeaderHeight } = useSetHeaderHeight(); useLayoutEffect(() => { const handleHeaderResize = () => { const height = headerRef.current?.getBoundingClientRect().height; if (height) { setHeaderHeight(height); } }; let resizeObserver; if (headerRef.current) { resizeObserver = new ResizeObserver(handleHeaderResize); resizeObserver.observe(headerRef.current); } return () => { if (resizeObserver) { resizeObserver.disconnect(); } }; }, [setHeaderHeight]); return (_jsx(Container, { id: createElementId(ElementId.Header, elementId), sticky: stickyHeaderRoutes.some((route) => pathname.includes(route)), ref: headerRef, children: children })); }; export const Header = () => { return (_jsxs(HeaderContainer, { children: [_jsx(WalletHeader, {}), _jsx(NavigationHeader, {})] })); }; //# sourceMappingURL=Header.js.map