TransferList
Usage
Native scrollbars
By default, TransferList uses ScrollArea to render list.
If you want to use native scrollbars instead, set div as a list component:
Custom item component
To customize item appearance, replace default item component:
- Add additional props to data
- Build a component which will consume your data object
- Provide custom component via
itemComponentprop - Customize search with
filterfunction
Initial selection
Set initial selected items with initialSelection prop.
Value should be a tuple of two arrays which contain values from data:
Controlled search
You can optionally control the search inputs by providing searchValues and onSearch props. searchValues should
be a tuple of two strings, one for each list:
Transferring only found items
By default, TransferList transfers all items when you click the transferAll button.
By setting the transferAllMatchingFilter prop to true, TransferList will only transfer the items that match the current filter.
Empty search VS empty list
You can specify a placeholder prop, which will be used in place of the nothingFound when a list is completely empty,
and no query is set.
Custom wording for each list
placeholder, nothingFound and searchPlaceholder props can take a tuple of values instead of a single value to
customize each list independently.
Grouping items
Custom control icons
Responsive styles
Set breakpoint prop to specify at which breakpoint TransferList will collapse to 1 column:
TransferList component props
| Name | Type | Description |
|---|---|---|
| breakpoint | number | "xs" | "sm" | "md" | "lg" | "xl" | Breakpoint at which list will collapse to single column layout |
| filter | (query: string, item: TransferListItem) => boolean | Function to filter search results |
| initialSelection | Selection | Initial items selection |
| itemComponent | TransferListItemComponent | Custom item component |
| limit | number | Limit amount of items showed at a time |
| listComponent | any | Change list component, can be used to add custom scrollbars |
| listHeight | number | List items height |
| nothingFound | ReactNode | [ReactNode, ReactNode] | Nothing found message |
| onChange * | (value: TransferListData) => void | Called when value changes |
| onSearch | (value: [string, string]) => void | Called when one of the search queries changes |
| placeholder | ReactNode | [ReactNode, ReactNode] | Displayed when a list is empty and there is no search query |
| radius | number | "xs" | "sm" | "md" | "lg" | "xl" | Key of theme.radius or any valid CSS value to set border-radius, theme.defaultRadius by default |
| searchPlaceholder | string | [string, string] | Search fields placeholder |
| searchValues | [string, string] | Controlled search queries |
| showTransferAll | boolean | Whether to hide the transfer all button |
| titles | [string, string] | Lists titles |
| transferAllIcon | FunctionComponent<{ reversed: boolean; }> | Change icon used for the transfer all control |
| transferAllMatchingFilter | boolean | Whether to transfer only items matching {@link filter} when clicking the transfer all control |
| transferIcon | FunctionComponent<{ reversed: boolean; }> | Change icon used for the transfer selected control |
| value * | TransferListData | Current value |
TransferList component Styles API
| Name | Static selector | Description |
|---|---|---|
| transferList | .asuikit-TransferList-transferList | One of list |
| transferListTitle | .asuikit-TransferList-transferListTitle | Title |
| transferListBody | .asuikit-TransferList-transferListBody | Contains header and items list |
| transferListHeader | .asuikit-TransferList-transferListHeader | Contains search and controls |
| transferListItems | .asuikit-TransferList-transferListItems | Items container |
| transferListItem | .asuikit-TransferList-transferListItem | List item |
| transferListItemHovered | .asuikit-TransferList-transferListItemHovered | List item modifier with hovered state |
| transferListSearch | .asuikit-TransferList-transferListSearch | Search field |
| transferListControl | .asuikit-TransferList-transferListControl | Controls to move items |
| separator | .asuikit-TransferList-separator | Divider wrapper |
| separatorLabel | .asuikit-TransferList-separatorLabel | Separator Label |