@kadconsulting/dry
Version:
KAD Reusable Component Library
74 lines (73 loc) • 2.1 kB
TypeScript
import type { PathRouteProps } from 'react-router-dom';
import type { ReactNode } from 'react';
export interface NavBarProps extends React.HTMLAttributes<HTMLElement> {
passProps?: object;
/** Support @testing-library/react `screen.getByTestId` */
'data-testid'?: string;
navRoutes: NavRoute;
logoProps?: NavBarLogoProps;
currentPath?: string | Location;
isnextjs?: boolean;
topText?: string;
subText?: string;
setLoading?: (loading: boolean) => void;
orientation?: 'horizontal' | 'vertical';
tabletBreakpoint?: number;
desktopBreakpoint?: number;
contentClassName?: string;
mainClassName?: string;
loading?: boolean;
}
export type NavRoute = {
[key: string]: PathRouteProps & {
noRoute?: boolean;
name: string;
visibleInNav: boolean;
subNavigation?: SubNavigation;
icon?: ReactNode;
children?: ReactNode;
infoWrapperClassName?: string;
inThumbBar?: boolean;
buttonType?: string;
};
};
export type SubNavigation = {
[key: string]: PathRouteProps & {
noRoute?: boolean;
name: string;
path: string;
icon?: ReactNode;
subRoutes?: SubRoute;
children?: ReactNode;
infoWrapperClassName?: string;
};
};
export type SubRoute = {
[key: string]: PathRouteProps & {
noRoute?: boolean;
name: string;
path: string;
icon?: ReactNode;
subRoutes?: SubRoute;
children?: ReactNode;
};
};
export type NavBarLogoProps = {
logoUrl: string;
width?: number;
height?: number;
inThumbBar?: boolean;
};
export interface NavBarWrapperProps extends React.HTMLAttributes<HTMLElement> {
passProps?: object;
/** Support @testing-library/react `screen.getByTestId` */
'data-testid'?: string;
navRoutes: NavRoute;
logoProps: NavBarLogoProps;
setLoading?: (loading: boolean) => void;
tabletBreakpoint?: number;
desktopBreakpoint?: number;
contentClassName?: string;
mainClassName?: string;
loading?: boolean;
}