import clsx from 'clsx'; import type { FunctionComponent, ReactNode } from 'react'; import React from 'react'; import DropdownNavigationView from '../DropdownNavigationView'; import type { NavigationBarProps } from '../NavigationBar'; import { NavigationBar } from '../NavigationBar'; import { SpinnerOverlay } from '../SpinnerOverlay'; import TabNavigationButton from '../TabNavigationButton'; import styles from './styles.scss'; export interface TabNavigationViewProps { children?: ReactNode; className?: string; currentPath: string; currentVirtualPath?: string; goTo: NavigationBarProps['goTo']; navigationPosition?: 'top' | 'bottom' | 'left'; brandIcon?: ReactNode; tabWidth?: string; tabHeight?: string; tabs: NavigationBarProps['tabs']; holdReady?: boolean; navBarClassName?: string; tabNavigationViewClassName?: string; onLoading?: boolean; tooltipForceHide?: boolean; } const TabNavigationView: FunctionComponent = ({ navigationPosition, navBarClassName, onLoading, brandIcon, holdReady, className, tabs, goTo, tabWidth, tabHeight, currentPath, currentVirtualPath, tabNavigationViewClassName, tooltipForceHide, children, }) => { if (onLoading) { return ; } if (holdReady) return null; const isVertical = navigationPosition === 'left'; const navBar = ( ); return (
{navigationPosition === 'top' || navigationPosition === 'left' ? ( <> {navBar} {navigationPosition === 'left' ? brandIcon : null} ) : null}
{children}
{navigationPosition === 'bottom' ? <>{navBar} : null}
); }; TabNavigationView.defaultProps = { children: null, navigationPosition: 'top', brandIcon: null, holdReady: false, onLoading: false, }; export default TabNavigationView;