1 | import * as React from 'react';
|
2 |
|
3 | type ItemT = any;
|
4 | type mapItemToNode = (item: ItemT) => React.ReactNode;
|
5 | type mapItemToString = (item: ItemT) => string;
|
6 |
|
7 | export type MainNavItemT = {
|
8 | active?: boolean;
|
9 | icon?: React.ComponentType<any>;
|
10 | item: ItemT;
|
11 | mapItemToNode?: mapItemToNode;
|
12 | mapItemToString: mapItemToString;
|
13 | nav?: MainNavItemT[];
|
14 | navExitIcon?: React.ComponentType<any>;
|
15 | };
|
16 |
|
17 | export type UserNavItemT = {
|
18 | active?: boolean;
|
19 | icon?: React.ComponentType<any>;
|
20 | item: ItemT;
|
21 | mapItemToNode?: mapItemToNode;
|
22 | mapItemToString: mapItemToString;
|
23 | };
|
24 |
|
25 | export interface AppNavBarPropsT {
|
26 | appDisplayName?: React.ReactNode;
|
27 |
|
28 | mainNav?: MainNavItemT[];
|
29 | isNavItemActive: (params: {item: MainNavItemT | UserNavItemT}) => boolean;
|
30 | onNavItemSelect: (params: {item: MainNavItemT | UserNavItemT}) => any;
|
31 | userNav?: UserNavItemT[];
|
32 | username?: string;
|
33 | usernameSubtitle?: React.ReactNode;
|
34 | userImgUrl?: string;
|
35 | }
|
36 |
|
37 | export interface POSITION {
|
38 | horizontal: 'horizontal';
|
39 | vertical: 'vertical';
|
40 | }
|
41 |
|
42 | export class Unstable_AppNavBar extends React.Component<AppNavBarPropsT> {}
|
43 | export const POSITION: POSITION;
|