| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 | 
							- import React from 'react';
 
- import { noop } from 'lodash';
 
- import { IconSidebar } from '@douyinfe/semi-icons';
 
- import Button from '../button';
 
- import Tooltip from '../tooltip';
 
- import { Locale } from '../locale/interface';
 
- export interface CollapseButtonProps {
 
-     prefixCls?: string;
 
-     locale?: Locale['Navigation'];
 
-     collapseText?(isCollapsed: boolean): React.ReactNode;
 
-     isCollapsed?: boolean;
 
-     onClick?(e: boolean): void;
 
- }
 
- export default function CollapseButton({ prefixCls, locale, collapseText, isCollapsed, onClick = noop }: CollapseButtonProps) {
 
-     const handleClick = () => {
 
-         if (typeof onClick === 'function') {
 
-             onClick(!isCollapsed);
 
-         }
 
-     };
 
-     const btnProps = {
 
-         icon: <IconSidebar />,
 
-         type: 'tertiary',
 
-         theme: 'borderless',
 
-         onClick: handleClick,
 
-     };
 
-     let finalCollapseText: React.ReactNode = isCollapsed ? locale?.expandText : locale?.collapseText;
 
-     if (typeof collapseText === 'function') {
 
-         finalCollapseText = collapseText(isCollapsed);
 
-     }
 
-     return (
 
-         <div className={`${prefixCls}-collapse-btn`}>
 
-             {isCollapsed ? (
 
-                 <Tooltip content={finalCollapseText} position="right">
 
-                     <Button {...(btnProps as any)} />
 
-                 </Tooltip>
 
-             ) : (
 
-                 <Button {...(btnProps as any)}>{finalCollapseText}</Button>
 
-             )}
 
-         </div>
 
-     );
 
- }
 
 
  |