list.d.ts 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import React from 'react';
  2. import type { KeyWiseTransferItem, RenderResult, SelectAllLabel, TransferDirection, TransferLocale, TransferSearchOption } from './index';
  3. import type { PaginationType, TransferKey } from './interface';
  4. import type { TransferListBodyProps } from './ListBody';
  5. export interface RenderedItem<RecordType> {
  6. renderedText: string;
  7. renderedEl: React.ReactNode;
  8. item: RecordType;
  9. }
  10. type RenderListFunction<T> = (props: TransferListBodyProps<T>) => React.ReactNode;
  11. export interface TransferListProps<RecordType> extends TransferLocale {
  12. prefixCls: string;
  13. titleText: React.ReactNode;
  14. dataSource: RecordType[];
  15. filterOption?: (filterText: string, item: RecordType, direction: TransferDirection) => boolean;
  16. style?: React.CSSProperties;
  17. checkedKeys: TransferKey[];
  18. handleFilter: (e: React.ChangeEvent<HTMLInputElement>) => void;
  19. onItemSelect: (key: TransferKey, check: boolean, e?: React.MouseEvent<Element, MouseEvent>) => void;
  20. onItemSelectAll: (dataSource: TransferKey[], checkAll: boolean | 'replace') => void;
  21. onItemRemove?: (keys: TransferKey[]) => void;
  22. handleClear: () => void;
  23. /** Render item */
  24. render?: (item: RecordType) => RenderResult;
  25. showSearch?: boolean | TransferSearchOption;
  26. searchPlaceholder: string;
  27. itemUnit: string;
  28. itemsUnit: string;
  29. renderList?: RenderListFunction<RecordType>;
  30. footer?: (props: TransferListProps<RecordType>, info?: {
  31. direction: TransferDirection;
  32. }) => React.ReactNode;
  33. onScroll: (e: React.UIEvent<HTMLUListElement, UIEvent>) => void;
  34. disabled?: boolean;
  35. direction: TransferDirection;
  36. showSelectAll?: boolean;
  37. selectAllLabel?: SelectAllLabel;
  38. showRemove?: boolean;
  39. pagination?: PaginationType;
  40. selectionsIcon?: React.ReactNode;
  41. }
  42. export interface TransferCustomListBodyProps<T> extends TransferListBodyProps<T> {
  43. }
  44. declare const TransferList: {
  45. <RecordType extends KeyWiseTransferItem>(props: TransferListProps<RecordType>): React.JSX.Element;
  46. displayName: string;
  47. };
  48. export default TransferList;