選択肢から複数の値を選択しつつテキスト入力での絞り込みや値追加もできる選択コンポーネントです。6個以上の選択肢から検索しながら複数を選択するときに使います。
import
import { MultiCombobox } from 'smarthr-ui'
Props
| Props 名 | 型 | デフォルト値 | 必須 | 説明 |
|---|---|---|---|---|
| items | ComboboxItem |
- | ✓ | 選択可能なアイテムのリスト |
| name | string | - | - | input 要素の name 属性の値 |
| disabled | boolean | false | - | input 要素の disabled 属性の値 |
| required | boolean | false | - | input 要素の required 属性の値 |
| className | string | - | - | コンポーネント内の一番外側の要素に適用するクラス名 |
| error | boolean | false | - | true のとき、コンポーネントの外枠が DANGER カラーになる |
| creatable | boolean | false | - | true のとき、 items 内に存在しないアイテムを新しく追加できるようになる |
| placeholder | string | - | input 要素の placeholder 属性の値 |
|
| isLoading | boolean | - | - | true のとき、ドロップダウンリスト内にローダーを表示する |
| width | string | number | - | - | input 要素の width スタイルに適用する値 |
| dropdownHelpMessage | ReactNode | - | - | ドロップダウンリスト内に表示するヘルプメッセージ |
| dropdownWidth | string | number | auto | - | ドロップダウンリストの width スタイルに適用する値 |
| onChangeInput | (e: ChangeEvent |
- | - | input 要素の value が変わった時に発火するコールバック関数 |
| onAdd | (label: string) => void | - | - | items 内に存在しないアイテムが追加されたときに発火するコールバック関数 |
| onSelect | (item: ComboboxItem |
- | - | アイテムが選択された時に発火するコールバック関数 |
| onChange | (e: ChangeEvent |
- | - | input 要素の value が変わった時に発火するコールバック関数 @deprecated onChange は非推奨なため、 代わりに onChangeInput を使用してください。 |
| selectedItems | (ComboboxItem |
- | ✓ | 選択されているアイテムのリスト |
| selectedItemEllipsis | boolean | - | - | 選択されているアイテムのラベルを省略表示するかどうか |
| inputValue | string | - | - | テキストボックスの value 属性の値。 onChangeInput と併せて設定することで、テキストボックスの挙動が制御可能になる。 |
| onDelete | (item: ComboboxItem |
- | - | 選択されているアイテムの削除ボタンがクリックされた時に発火するコールバック関数 |
| onChangeSelected | (selectedItems: ComboboxItem |
- | - | 選択されているアイテムのリストが変わった時に発火するコールバック関数 |
| onFocus | () => void | - | - | コンポーネントがフォーカスされたときに発火するコールバック関数 |
| onBlur | () => void | - | - | コンポーネントからフォーカスが外れた時に発火するコールバック関数 |
| isItemSelected | (targetItem: ComboboxItem |
- | - | アイテムが選択されたときに選択済みかどうかを判定するコールバック関数/ |
| noResultText | ReactNode | - | - | 検索結果が0件の時に表示するコンテンツ |
実装ルール
MultiCombobox に直接関連する eslint-plugin-smarthr のルールは現時点ではありません。
使い方チェックリスト
使用上の注意 > 複数選択の場合に使用する
- [must] 値を単一選択させたい場合は SingleCombobox を使用する
使用上の注意 > 選択肢が6個以上の場合に使用する
- [should] 選択肢の数が 6 個以上で、ユーザーにテキスト入力で値を追加させたり、値を絞り込んで選択させたい場合は MultiCombobox を使用する
- [should] 選択肢が 5 個以下であれば、初期状態で選択肢が一覧できる Checkbox を使用する
- [should] Checkbox を配置する十分なスペースがない場合は、MultiCombobox の使用を検討する
使用上の注意 > 入力補助のヒントメッセージとしてプレースホルダを使用しない
- [avoid] 入力補助のヒントメッセージとしてプレースホルダ(
placeholder)を使用しない - [must] 入力補助のヒントメッセージを表示したい場合は、
dropdownHelpMessageまたは FormControl のhelpMessageを使用する - [must] ヒントメッセージを常に表示したい場合は、FormControl の
helpMessageを使用する
状態 > 無効(disabled)
- [should] 無効状態にする場合は、そもそも無効ではなくフォーム自体を非表示にしたり、無効状態の理由を付近に表示することを検討する
状態 > 選択肢にない値の追加
- [should] ユーザーがその場で選択肢を追加できるようにしたい場合は、
creatableを適用してコールバック関数onAddを適切に実装する