Usage
import { Popover } from 'nr1'
Examples
Basic
1<Popover>2 <PopoverTrigger>Trigger</PopoverTrigger>3 <PopoverBody>4 <BlockText>Body</BlockText>5 </PopoverBody>6</Popover>;
Button as trigger
1<Popover>2 <PopoverTrigger>3 <Button>Trigger</Button>4 </PopoverTrigger>5 <PopoverBody>6 <BlockText>Body</BlockText>7 </PopoverBody>8</Popover>;
TextField as trigger
1<Popover>2 <PopoverTrigger>3 <TextField />4 </PopoverTrigger>5 <PopoverBody>6 <BlockText>Body</BlockText>7 </PopoverBody>8</Popover>;
With PopoverFooter
1<Popover>2 <PopoverTrigger>3 <Button>Trigger</Button>4 </PopoverTrigger>5 <PopoverBody>6 <Card style={{ width: '250px' }}>7 <CardBody>8 <HeadingText>Heading</HeadingText>9 <BlockText10 spacingType={[11 BlockText.SPACING_TYPE.MEDIUM,12 BlockText.SPACING_TYPE.NONE,13 ]}14 >15 Item content16 </BlockText>17 <BlockText>Item content</BlockText>18 </CardBody>19 </Card>20 <PopoverFooter style={{ textAlign: 'right' }}>Info message</PopoverFooter>21 </PopoverBody>22</Popover>;
Controlled Popover
1class ControlledPopover extends React.Component {2 constructor() {3 super(...arguments);4
5 this.state = {6 opened: false,7 };8
9 this._onChange = this._onChange.bind(this);10 }11
12 _onChange(evt, opened) {13 this.setState({ opened }, () =>14 console.log('controlled state', evt, this.state)15 );16 }17
18 render() {19 const { opened } = this.state;20
21 return (22 <Popover opened={opened} onChange={this._onChange}>23 <PopoverTrigger>24 <Button>Trigger</Button>25 </PopoverTrigger>26 <PopoverBody>27 <Card style={{ width: '250px' }}>28 <CardBody>29 <HeadingText>Heading</HeadingText>30 <BlockText31 spacingType={[32 BlockText.SPACING_TYPE.MEDIUM,33 BlockText.SPACING_TYPE.NONE,34 ]}35 >36 Item content37 </BlockText>38 <BlockText>Item content</BlockText>39 </CardBody>40 </Card>41 <PopoverFooter style={{ textAlign: 'right' }}>42 Info message43 </PopoverFooter>44 </PopoverBody>45 </Popover>46 );47 }48}
Props
childrenrequirednode[]
This component accepts children of two types:
<PopoverTrigger>
to render the element that will open/close the overlay.<PopoverBody>
to render content inside the overlay.
onChangefunction
Callback to track when the Popover
overlay opens or closes while in
controlled mode. This method fires when the user actions the
PopoverTrigger
, or clicks outside of the PopoverBody
when it is
open.
function (event: React.KeyboardEvent|React.MouseEvent, opened: boolean )
openOnHoverboolean
DEFAULT
false
When true, the popover overlay will open on hover.
openedboolean
When provided, Popover
will be put into controlled mode. The
boolean value will either open or close the popover overlay.