1 | import type { SiderProps } from 'antd/lib/layout/Sider';
|
2 | import type { CSSProperties } from 'react';
|
3 | import React from 'react';
|
4 | import type { WithFalse } from '../../typings';
|
5 | import type { BaseMenuProps } from './BaseMenu';
|
6 | import './index.less';
|
7 | export declare const defaultRenderLogo: (logo: React.ReactNode | (() => React.ReactNode)) => React.ReactNode;
|
8 | export declare const defaultRenderLogoAndTitle: (props: SiderMenuProps, renderKey?: string) => React.ReactNode;
|
9 | export declare type SiderMenuProps = {
|
10 | logo?: React.ReactNode;
|
11 | siderWidth?: number;
|
12 | /**
|
13 | * @name 菜单 logo 和 title 区域的渲染
|
14 | *
|
15 | * @example 不要logo : menuHeaderRender={(logo,title)=> title}
|
16 | * @example 不要title : menuHeaderRender={(logo,title)=> logo}
|
17 | * @example 展开的时候显示title,收起显示 logo: menuHeaderRender={(logo,title,props)=> props.collapsed ? logo : title}
|
18 | * @example 不要这个区域了 : menuHeaderRender={false}
|
19 | */
|
20 | menuHeaderRender?: WithFalse<(logo: React.ReactNode, title: React.ReactNode, props?: SiderMenuProps) => React.ReactNode>;
|
21 | /**
|
22 | * @name 侧边菜单底部的配置,可以增加一些底部操作
|
23 | *
|
24 | * @example 底部增加超链接 menuFooterRender={()=><a href="https://pro.ant.design">pro.ant.design</a>}
|
25 | * @example 根据收起展开配置不同的 dom menuFooterRender={()=>collapsed? null :<a href="https://pro.ant.design">pro.ant.design</a>}
|
26 | */
|
27 | menuFooterRender?: WithFalse<(props?: SiderMenuProps) => React.ReactNode>;
|
28 | /**
|
29 | * @name 侧边菜单,菜单区域的处理,可以单独处理菜单的dom
|
30 | *
|
31 | * @example 增加菜单区域的背景颜色 menuContentRender={(props,defaultDom)=><div style={{backgroundColor:"red"}}>{defaultDom}</div>}
|
32 | * @example 某些情况下不显示菜单 menuContentRender={(props)=> return <div>不显示菜单</div>}
|
33 | */
|
34 | menuContentRender?: WithFalse<(props: SiderMenuProps, defaultDom: React.ReactNode) => React.ReactNode>;
|
35 | /**
|
36 | * @name 侧边菜单 title 和 logo 下面区域的渲染,一般会增加个搜索框
|
37 | *
|
38 | * @example 增加一个搜索框 menuExtraRender={()=>(<Search placeholder="请输入" />)}
|
39 | * @example 根据收起展开配置不同的 dom: menuExtraRender={()=>collapsed? null : <Search placeholder="请输入" />}
|
40 | */
|
41 | menuExtraRender?: WithFalse<(props: SiderMenuProps) => React.ReactNode>;
|
42 | /**
|
43 | * @name 自定义展开收起按钮的渲染
|
44 | *
|
45 | * @example 使用文字渲染 collapsedButtonRender={(collapsed)=>collapsed?"展开":"收起"})}
|
46 | * @example 使用icon渲染 collapsedButtonRender={(collapsed)=>collapsed?<MenuUnfoldOutlined />:<MenuFoldOutlined />}
|
47 | * @example 不渲染按钮 collapsedButtonRender={false}
|
48 | */
|
49 | collapsedButtonRender?: WithFalse<(collapsed?: boolean) => React.ReactNode>;
|
50 | /**
|
51 | * @name 菜单是否收起的断点,设置成false 可以禁用
|
52 | *
|
53 | * @example 禁用断点 breakpoint={false}
|
54 | * @example 最小的屏幕再收起 breakpoint={"xs"}
|
55 | */
|
56 | breakpoint?: SiderProps['breakpoint'] | false;
|
57 | /**
|
58 | * @name 菜单顶部logo 和 title 区域的点击事件
|
59 | *
|
60 | * @example 点击跳转到首页 onMenuHeaderClick={()=>{ history.push('/') }}
|
61 | */
|
62 | onMenuHeaderClick?: (e: React.MouseEvent<HTMLDivElement>) => void;
|
63 | /**
|
64 | * @name 侧边菜单底部的一些快捷链接
|
65 | *
|
66 | * @example links={[<a href="ant.design"> 访问官网 </a>,<a href="help.ant.design"> 帮助 </a>]}
|
67 | */
|
68 | links?: React.ReactNode[];
|
69 | onOpenChange?: (openKeys: WithFalse<string[]>) => void;
|
70 | getContainer?: false;
|
71 | /**
|
72 | * @name 侧边菜单的logo的样式,可以调整下大小
|
73 | *
|
74 | * @example 设置logo的大小为 42px logoStyle={{width: '42px', height: '42px'}}
|
75 | */
|
76 | logoStyle?: CSSProperties;
|
77 | hide?: boolean;
|
78 | className?: string;
|
79 | style?: CSSProperties;
|
80 | } & Pick<BaseMenuProps, Exclude<keyof BaseMenuProps, ['onCollapse']>>;
|
81 | export declare const defaultRenderCollapsedButton: (collapsed?: boolean) => JSX.Element;
|
82 | export declare type PrivateSiderMenuProps = {
|
83 | matchMenuKeys: string[];
|
84 | };
|
85 | declare const SiderMenu: React.FC<SiderMenuProps & PrivateSiderMenuProps>;
|
86 | export default SiderMenu;
|