Stripe Apps の Menu コンポーネント
Menu には、ユーザーが選択できるアクションのグループが表示されます。多くの場合、このアクションは特定のオブジェクトやコンテキストに関連しています。
Menu
コンポーネントをアプリに追加するには、以下のようにします。
import {Menu, MenuItem, MenuGroup} from '@stripe/ui-extension-sdk/ui';
基本メニューは、メニューをトリガーするエレメントと一連のメニューアイテムで構成されます。
<Menu trigger={<Button>Menu</Button>}> <MenuItem>Edit</MenuItem> <MenuItem>Copy</MenuItem> <MenuItem>Paste</MenuItem> </Menu>
Menu プロパティ
プロパティー | タイプ |
---|---|
| 必須
One or more |
| オプション
アイテムが選択されたときに呼び出されるハンドラー。 |
| オプション
The trigger Element to show/hide the |
アイテム
メニューには、縦に配置される複数のアイテムが含まれています。
<Box css={{ backgroundColor: 'surface', padding: 'medium', borderRadius: 'medium', }} > <Menu aria-label="Menu"> <MenuItem>Edit</MenuItem> <MenuItem disabled>Copy</MenuItem> <MenuItem>Paste</MenuItem> </Menu> </Box>
MenuItem プロパティ
プロパティー | タイプ |
---|---|
| 必須
コンポーネントのコンテンツ。 |
| オプション
Marks an item as disabled. Disabled items cannot be selected, focused, or otherwise interacted with. |
| オプション
アイテムの ID。これは |
| オプション
アイテムが選択されたときに呼び出されるハンドラー。 |
グループ
メニューのアイテムをグループに分割できます。
<Box css={{ backgroundColor: 'surface', padding: 'medium', borderRadius: 'medium', }} > <Menu aria-label="Menu"> <MenuGroup title="Actions"> <MenuItem>Duplicate</MenuItem> <MenuItem>Edit</MenuItem> <MenuItem>Cancel</MenuItem> </MenuGroup> <MenuGroup title="Connections"> <MenuItem>View customer</MenuItem> <MenuItem>View subscription</MenuItem> </MenuGroup> </Menu> </Box>
MenuGroup プロパティ
プロパティー | タイプ |
---|---|
| 必須
One or more |
| オプション
|
イベント
onAction
プロパティは、アイテムに対する press
イベントを処理するためのコールバックとして使用します。onAction
プロパティを Menu
に指定して、すべてのアイテムを対象としてアイテムの有効化を処理するか、直接 MenuItem
に指定して、個々のアイテムの有効化を処理することができます。
<Box css={{ backgroundColor: 'surface', padding: 'medium', borderRadius: 'medium', }} > <Menu aria-label="Menu" onAction={(id) => console.log(`Item ${id} was pressed.`)} > <MenuGroup title="Actions"> <MenuItem id="duplicate">Duplicate</MenuItem> <MenuItem id="edit">Edit</MenuItem> <MenuItem id="cancel">Cancel</MenuItem> </MenuGroup> <MenuGroup title="Connections"> <MenuItem id="View customer" onAction={() => console.log('View customer was pressed.')} > View customer </MenuItem> <MenuItem id="View subscription">View subscription</MenuItem> </MenuGroup> </Menu> </Box>
トリガー
メニューの trigger
プロパティはメニューと連動して、メニューが開いている状態をトリガーが押された状態とリンクさせます。
<Menu trigger={<Button>Menu</Button>}> <MenuGroup title="Actions"> <MenuItem>Duplicate</MenuItem> <MenuItem disabled>Edit</MenuItem> <MenuItem>Cancel</MenuItem> </MenuGroup> <MenuGroup title="Connections"> <MenuItem>View customer</MenuItem> <MenuItem>View subscription</MenuItem> </MenuGroup> </Menu>