Transfer

A dual-panel list for moving items between source and target.

When to Use

  • For assigning users to groups or roles
  • When items need to be moved between two lists
  • For permission or feature selection interfaces

Import

import { Transfer } from "orizon";

Examples

Basic

3 itemsSource
2 itemsTarget
<Transfer
  dataSource={[
    { key: "1", title: "Item 1" },
    { key: "2", title: "Item 2" },
    { key: "3", title: "Item 3" },
  ]}
  targetKeys={targetKeys}
  onChange={(newTargetKeys) => setTargetKeys(newTargetKeys)}
  render={(item) => item.title}
/>
<Transfer showSearch dataSource={data} targetKeys={targetKeys}
  onChange={setTargetKeys} render={(item) => item.title}
/>

API

TransferProps

  • dataSourceTransferItem[] — All available items
  • targetKeysstring[] — Keys of items in the right panel
  • selectedKeysstring[] — Currently selected keys
  • onChange(targetKeys, direction, moveKeys) => void — Transfer handler
  • onSelectChange(sourceSelectedKeys, targetSelectedKeys) => void — Selection handler
  • render(item) => ReactNode — Item render function
  • showSearchboolean — Show search input (default: false)
  • titles[string, string] — Panel titles
  • operations[string, string] — Button labels
  • paginationboolean | { pageSize } — Enable pagination
  • disabledboolean — Disable the transfer

TransferItem

  • keystring — Unique identifier
  • titlestring — Item display text
  • disabledboolean — Disable the item