ContextMenu
Beim ContextMenu handelt es sich um ein Popover, das eine Liste von Aktionen oder Verlinkungen enthält.GitHubBeispiel
import ContextMenu, { ContextMenuTrigger, } from "@mittwald/flow-react-components/ContextMenu"; import Button from "@mittwald/flow-react-components/Button"; import MenuItem from "@mittwald/flow-react-components/MenuItem"; <ContextMenuTrigger> <Button>Trigger</Button> <ContextMenu onAction={(id) => { alert(id); }} > <MenuItem id="1">Item 1</MenuItem> <MenuItem id="2">Item 2</MenuItem> <MenuItem id="3">Item 3</MenuItem> </ContextMenu> </ContextMenuTrigger>
Einfach-Auswahl
import ContextMenu, { ContextMenuTrigger, } from "@mittwald/flow-react-components/ContextMenu"; import Button from "@mittwald/flow-react-components/Button"; import MenuItem from "@mittwald/flow-react-components/MenuItem"; <ContextMenuTrigger> <Button>Trigger</Button> <ContextMenu selectionMode="single" defaultSelectedKeys={["item2"]} > <MenuItem id="item1">Item 1</MenuItem> <MenuItem id="item2">Item 2</MenuItem> <MenuItem id="item3">Item 3</MenuItem> </ContextMenu> </ContextMenuTrigger>
Mehrfach-Auswahl
import ContextMenu, { ContextMenuTrigger, } from "@mittwald/flow-react-components/ContextMenu"; import Button from "@mittwald/flow-react-components/Button"; import MenuItem from "@mittwald/flow-react-components/MenuItem"; <ContextMenuTrigger> <Button>Trigger</Button> <ContextMenu selectionMode="multiple" defaultSelectedKeys={["item2", "item3"]} > <MenuItem id="item1">Item 1</MenuItem> <MenuItem id="item2">Item 2</MenuItem> <MenuItem id="item3">Item 3</MenuItem> </ContextMenu> </ContextMenuTrigger>
Mit Icon
import ContextMenu, { ContextMenuTrigger, } from "@mittwald/flow-react-components/ContextMenu"; import Button from "@mittwald/flow-react-components/Button"; import MenuItem from "@mittwald/flow-react-components/MenuItem"; import { IconInfo } from "@mittwald/flow-react-components/Icons"; import Text from "@mittwald/flow-react-components/Text"; <ContextMenuTrigger> <Button>Trigger</Button> <ContextMenu onAction={(id) => { alert(id); }} > <MenuItem id="1"> <IconInfo /> <Text>Item 1</Text> </MenuItem> <MenuItem id="2"> <IconInfo /> <Text>Item 2</Text> </MenuItem> <MenuItem id="3"> <IconInfo /> <Text>Item 3</Text> </MenuItem> </ContextMenu> </ContextMenuTrigger>
Mit Separator
import ContextMenu, { ContextMenuTrigger, } from "@mittwald/flow-react-components/ContextMenu"; import Button from "@mittwald/flow-react-components/Button"; import MenuItem from "@mittwald/flow-react-components/MenuItem"; import Separator from "@mittwald/flow-react-components/Separator"; <ContextMenuTrigger> <Button>Trigger</Button> <ContextMenu> <MenuItem id="1">Item 1</MenuItem> <Separator /> <MenuItem id="2">Item 2</MenuItem> <MenuItem id="3">Item 3</MenuItem> </ContextMenu> </ContextMenuTrigger>
Mit Sections und Headings
import ContextMenu, { ContextMenuTrigger, } from "@mittwald/flow-react-components/ContextMenu"; import Button from "@mittwald/flow-react-components/Button"; import MenuItem from "@mittwald/flow-react-components/MenuItem"; import Heading from "@mittwald/flow-react-components/Heading"; import Separator from "@mittwald/flow-react-components/Separator"; import Section from "@mittwald/flow-react-components/Section"; <ContextMenuTrigger> <Button>Trigger</Button> <ContextMenu> <Section> <Heading>Section 1</Heading> <MenuItem id="1">Item 1</MenuItem> <MenuItem id="2">Item 2</MenuItem> <MenuItem id="3">Item 3</MenuItem> </Section> <Separator /> <Section> <Heading>Section 2</Heading> <MenuItem id="4">Item 4</MenuItem> <MenuItem id="5">Item 5</MenuItem> </Section> </ContextMenu> </ContextMenuTrigger>
Mit fester Breite
Lege eine Breite für dein ContextMenu fest, um beispielsweise zu verhindern, dass das ContextMenu zu breit wird oder die Breite des ContextMenus beim Nachladen von Daten springt.
import ContextMenu, { ContextMenuTrigger, } from "@mittwald/flow-react-components/ContextMenu"; import Button from "@mittwald/flow-react-components/Button"; import MenuItem from "@mittwald/flow-react-components/MenuItem"; <ContextMenuTrigger> <Button>Trigger</Button> <ContextMenu width={300} onAction={(id) => { alert(id); }} > <MenuItem id="1">Mein Projekt</MenuItem> <MenuItem id="2">Mein zweites Projekt</MenuItem> <MenuItem id="3"> Mein drittes Projekt mit einem sehr langen Namen </MenuItem> </ContextMenu> </ContextMenuTrigger>