diff --git a/interface/app/$libraryId/TopBar/TopBarMobile.tsx b/interface/app/$libraryId/TopBar/TopBarMobile.tsx index f531c85dc..fcf38de50 100644 --- a/interface/app/$libraryId/TopBar/TopBarMobile.tsx +++ b/interface/app/$libraryId/TopBar/TopBarMobile.tsx @@ -1,14 +1,34 @@ import { DotsThreeCircle } from 'phosphor-react'; -import { HTMLAttributes } from 'react'; +import { HTMLAttributes, forwardRef } from 'react'; +import React from 'react'; import { Popover } from '@sd/ui'; import { TOP_BAR_ICON_STYLE, ToolOption } from '.'; -import TopBarButton from './TopBarButton'; +import TopBarButton, { TopBarButtonProps } from './TopBarButton'; + +const GroupTool = forwardRef< + HTMLButtonElement, + Omit & { tool: ToolOption } +>(({ tool, ...props }, ref) => { + return ( + + {tool.icon} + {tool.toolTipLabel} + + ); +}); interface Props extends HTMLAttributes { toolOptions?: ToolOption[][]; } -export default ({ className = '', toolOptions }: Props) => { +export default ({ toolOptions, className }: Props) => { const toolsNotSmFlex = toolOptions?.map((group) => group.filter((tool) => tool.showAtResolution !== 'sm:flex') ); @@ -22,59 +42,30 @@ export default ({ className = '', toolOptions }: Props) => { } > -
- {toolsNotSmFlex?.map((group, groupIndex) => { - return group.map( - ( - { icon, onClick, popOverComponent, toolTipLabel, topBarActive }, - index - ) => { - const groupCount = toolOptions?.length; - return ( -
- {popOverComponent ? ( - -
-
- {icon} - {toolTipLabel} -
-
- - } - > +
+ {toolsNotSmFlex?.map((group, i) => ( + +
+ {group.map((tool) => ( + + {tool.popOverComponent ? ( + }>
- {popOverComponent} + {tool.popOverComponent}
) : ( - - {icon} - {toolTipLabel} - + )} - {index === group.length - 1 && - groupIndex + 1 !== groupCount && ( -
- )} -
- ); - } - ); - })} +
+ ))} +
+ + {i !== 0 && i !== toolsNotSmFlex.length - 1 && ( +
+ )} + + ))}