ant-design/components/transfer/operation.tsx

66 lines
1.6 KiB
TypeScript
Raw Normal View History

import LeftOutlined from '@ant-design/icons/LeftOutlined';
import RightOutlined from '@ant-design/icons/RightOutlined';
import * as React from 'react';
2015-11-26 16:07:11 +08:00
import Button from '../button';
import type { DirectionType } from '../config-provider';
2015-11-26 16:07:11 +08:00
export interface TransferOperationProps {
2016-07-13 11:14:24 +08:00
className?: string;
leftArrowText?: string;
rightArrowText?: string;
moveToLeft?: React.MouseEventHandler<HTMLButtonElement | HTMLAnchorElement>;
moveToRight?: React.MouseEventHandler<HTMLButtonElement | HTMLAnchorElement>;
2016-07-13 11:14:24 +08:00
leftActive?: boolean;
rightActive?: boolean;
2018-05-28 23:07:43 +08:00
style?: React.CSSProperties;
2018-09-15 15:18:59 +08:00
disabled?: boolean;
direction?: DirectionType;
oneWay?: boolean;
}
const Operation: React.FC<TransferOperationProps> = (props) => {
const {
disabled,
moveToLeft,
moveToRight,
leftArrowText = '',
rightArrowText = '',
leftActive,
rightActive,
className,
style,
direction,
oneWay,
} = props;
return (
<div className={className} style={style}>
<Button
type="primary"
size="small"
disabled={disabled || !rightActive}
onClick={moveToRight}
icon={direction !== 'rtl' ? <RightOutlined /> : <LeftOutlined />}
>
{rightArrowText}
</Button>
{!oneWay && (
<Button
type="primary"
size="small"
disabled={disabled || !leftActive}
onClick={moveToLeft}
icon={direction !== 'rtl' ? <LeftOutlined /> : <RightOutlined />}
>
{leftArrowText}
</Button>
)}
</div>
);
};
if (process.env.NODE_ENV !== 'production') {
Operation.displayName = 'Operation';
}
2019-08-05 18:38:10 +08:00
export default Operation;