'use client'; import { FC, useContext } from 'react'; import { ComponentParameter, UniformSlot, UniformText } from '@uniformdev/next-app-router/component'; import { MegaMenuContext } from '@/components/canvas/NavigationFlyout/mega-menu-context'; import BaseIconLabel from '@/components/ui/IconLabel'; import BaseImage from '@/components/ui/Image'; import InlineSVG from '@/components/ui/InlineSVG'; import BaseLink from '@/components/ui/Link'; import { ReplaceFieldsWithAssets } from '@/types/cskTypes'; import { formatUniformLink, isExternalLink } from '@/utils/routing'; import { cn, resolveViewPort } from '@/utils/styling'; import { withFlattenParameters } from '@/utils/withFlattenParameters'; import { NavigationMegaCategoryParameters, NavigationMegaCategoryProps, NavigationMegaCategorySlots } from '.'; type NavigationMegaCategoryClientProps = NavigationMegaCategoryProps & ReplaceFieldsWithAssets; const NavigationMegaCategoryClient: FC = ({ icon, link, size, tag, color, weight, font, transform, decoration, letterSpacing, alignment, component, hoverEffect = '', className, parameters, slots, }) => { const { isInsideCategorizedMegaMenu } = useContext(MegaMenuContext); if (isInsideCategorizedMegaMenu) { return ; } const href = formatUniformLink(link); const actionClassName = cn('transition-all duration-150', { [resolveViewPort(hoverEffect, 'group-hover:{value}')]: !!hoverEffect, }); const [resolvedIcon] = icon || []; const { url: iconUrl, title: iconTitle = '' } = resolvedIcon || {}; const iconNode = iconUrl ? ( iconUrl.endsWith('.svg') ? ( ) : ( ) ) : null; const content = ( } className="whitespace-nowrap" component={component} /> ); if (!href) return
{content}
; const external = isExternalLink(href); return ( {content} ); }; export default withFlattenParameters(NavigationMegaCategoryClient);