Commit 38154f89 authored by Max Alekseenko's avatar Max Alekseenko

replace hook with function

parent 36cf355a
...@@ -13,8 +13,8 @@ import IconSvg from 'ui/shared/IconSvg'; ...@@ -13,8 +13,8 @@ import IconSvg from 'ui/shared/IconSvg';
import LightningLabel, { LIGHTNING_LABEL_CLASS_NAME } from './LightningLabel'; import LightningLabel, { LIGHTNING_LABEL_CLASS_NAME } from './LightningLabel';
import NavLinkIcon from './NavLinkIcon'; import NavLinkIcon from './NavLinkIcon';
import useColors from './useColors'; import useColors from './useColors';
import useHighlightedRoute from './useHighlightedRoute';
import useNavLinkStyleProps from './useNavLinkStyleProps'; import useNavLinkStyleProps from './useNavLinkStyleProps';
import { checkRouteHighlight } from './utils';
type Props = { type Props = {
item: NavItem; item: NavItem;
...@@ -36,7 +36,7 @@ const NavLink = ({ item, isCollapsed, px, className, onClick, disableActiveState ...@@ -36,7 +36,7 @@ const NavLink = ({ item, isCollapsed, px, className, onClick, disableActiveState
const isXLScreen = useBreakpointValue({ base: false, xl: true }); const isXLScreen = useBreakpointValue({ base: false, xl: true });
const href = isInternalLink ? route(item.nextRoute) : item.url; const href = isInternalLink ? route(item.nextRoute) : item.url;
const isHighlighted = useHighlightedRoute(item); const isHighlighted = checkRouteHighlight(item);
const content = ( const content = (
<Link <Link
......
...@@ -18,8 +18,8 @@ import IconSvg from 'ui/shared/IconSvg'; ...@@ -18,8 +18,8 @@ import IconSvg from 'ui/shared/IconSvg';
import LightningLabel from './LightningLabel'; import LightningLabel from './LightningLabel';
import NavLink from './NavLink'; import NavLink from './NavLink';
import NavLinkIcon from './NavLinkIcon'; import NavLinkIcon from './NavLinkIcon';
import useHighlightedRoute from './useHighlightedRoute';
import useNavLinkStyleProps from './useNavLinkStyleProps'; import useNavLinkStyleProps from './useNavLinkStyleProps';
import { checkRouteHighlight } from './utils';
type Props = { type Props = {
item: NavGroupItem; item: NavGroupItem;
...@@ -31,7 +31,7 @@ const NavLinkGroupDesktop = ({ item, isCollapsed }: Props) => { ...@@ -31,7 +31,7 @@ const NavLinkGroupDesktop = ({ item, isCollapsed }: Props) => {
const styleProps = useNavLinkStyleProps({ isCollapsed, isExpanded, isActive: item.isActive }); const styleProps = useNavLinkStyleProps({ isCollapsed, isExpanded, isActive: item.isActive });
const isHighlighted = useHighlightedRoute(item.subItems); const isHighlighted = checkRouteHighlight(item.subItems);
return ( return (
<Box as="li" listStyleType="none" w="100%"> <Box as="li" listStyleType="none" w="100%">
......
...@@ -12,8 +12,8 @@ import IconSvg from 'ui/shared/IconSvg'; ...@@ -12,8 +12,8 @@ import IconSvg from 'ui/shared/IconSvg';
import LightningLabel from './LightningLabel'; import LightningLabel from './LightningLabel';
import NavLinkIcon from './NavLinkIcon'; import NavLinkIcon from './NavLinkIcon';
import useHighlightedRoute from './useHighlightedRoute';
import useNavLinkStyleProps from './useNavLinkStyleProps'; import useNavLinkStyleProps from './useNavLinkStyleProps';
import { checkRouteHighlight } from './utils';
type Props = { type Props = {
item: NavGroupItem; item: NavGroupItem;
...@@ -24,7 +24,7 @@ type Props = { ...@@ -24,7 +24,7 @@ type Props = {
const NavLinkGroup = ({ item, onClick, isExpanded }: Props) => { const NavLinkGroup = ({ item, onClick, isExpanded }: Props) => {
const styleProps = useNavLinkStyleProps({ isActive: item.isActive, isExpanded }); const styleProps = useNavLinkStyleProps({ isActive: item.isActive, isExpanded });
const isHighlighted = useHighlightedRoute(item.subItems); const isHighlighted = checkRouteHighlight(item.subItems);
return ( return (
<Box as="li" listStyleType="none" w="100%" onClick={ onClick }> <Box as="li" listStyleType="none" w="100%" onClick={ onClick }>
......
import type { NavItem } from 'types/client/navigation-items';
import config from 'configs/app';
import { isInternalItem } from 'lib/hooks/useNavItems';
export default function useHighlightedRoute(item: NavItem | Array<NavItem> | Array<Array<NavItem>>) {
function checkForLightningLabel(item: NavItem | Array<NavItem> | Array<Array<NavItem>>): boolean {
if (Array.isArray(item)) {
return item.some((subItem) => checkForLightningLabel(subItem));
}
return isInternalItem(item) && (config.UI.sidebar.highlightedRoutes.includes(item.nextRoute.pathname));
}
return checkForLightningLabel(item);
}
import type { NavItem } from 'types/client/navigation-items';
import config from 'configs/app';
import { isInternalItem } from 'lib/hooks/useNavItems';
export function checkRouteHighlight(item: NavItem | Array<NavItem> | Array<Array<NavItem>>): boolean {
if (Array.isArray(item)) {
return item.some((subItem) => checkRouteHighlight(subItem));
}
return isInternalItem(item) && (config.UI.sidebar.highlightedRoutes.includes(item.nextRoute.pathname));
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment