1 | import * as React from 'react';
|
2 |
|
3 | export type NavItemT = {
|
4 | active?: boolean;
|
5 | icon?: React.ComponentType<any>;
|
6 | info?: any;
|
7 | label: string;
|
8 | children?: NavItemT[];
|
9 | navExitIcon?: React.ComponentType<any>;
|
10 | navPosition?: {
|
11 | desktop?: POSITION[keyof POSITION];
|
12 | mobile?: POSITION[keyof POSITION];
|
13 | };
|
14 | };
|
15 |
|
16 | export type UserMenuPropsT = {
|
17 | userItems?: NavItemT[];
|
18 | username?: string;
|
19 | usernameSubtitle?: React.ReactNode;
|
20 | userImgUrl?: string;
|
21 | onUserItemSelect?: (item: NavItemT) => mixed;
|
22 | };
|
23 |
|
24 | export type AppNavBarPropsT = UserMenuPropsT & {
|
25 | isMainItemActive?: (item: NavItemT) => boolean;
|
26 | mainItems?: NavItemT[];
|
27 | mapItemToNode?: (item: NavItemT) => React.ReactNode;
|
28 | onMainItemSelect?: (item: NavItemT) => mixed;
|
29 | title?: React.ReactNode;
|
30 | };
|
31 |
|
32 | export interface POSITION {
|
33 | horizontal: 'horizontal';
|
34 | vertical: 'vertical';
|
35 | }
|
36 |
|
37 | export class AppNavBar extends React.Component<AppNavBarPropsT> {}
|
38 | export const POSITION: POSITION;
|
39 |
|
40 | export const setItemActive: (
|
41 | items: NavItemT[],
|
42 | item: NavItemT,
|
43 | getUniqueueIdentifier?: (currentItem: NavItemT) => string | number,
|
44 | ) => NavItemT[];
|