Advertisement
Guest User

Untitled

a guest
Feb 21st, 2019
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.66 KB | None | 0 0
  1. /* eslint react/no-multi-comp: 0, react/prop-types: 0 */
  2.  
  3. import React from 'react';
  4. import { Button, Popover, PopoverHeader, PopoverBody } from 'reactstrap';
  5.  
  6. class PopoverItem extends React.Component {
  7. constructor(props) {
  8. super(props);
  9.  
  10. this.toggle = this.toggle.bind(this);
  11. this.state = {
  12. popoverOpen: false
  13. };
  14. }
  15.  
  16. toggle() {
  17. this.setState({
  18. popoverOpen: !this.state.popoverOpen
  19. });
  20. }
  21.  
  22. render() {
  23. return (
  24. <span>
  25. <Button className="mr-1" color="secondary" id={'Popover-' + this.props.id} type="button">
  26. {this.props.item.text}
  27. </Button>
  28. <Popover placement={this.props.item.placement} isOpen={this.state.popoverOpen} target={'Popover-' + this.props.id} toggle={this.toggle}>
  29. <PopoverHeader>Popover Title</PopoverHeader>
  30. <PopoverBody>Sed posuere consectetur est at lobortis. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum.</PopoverBody>
  31. </Popover>
  32. </span>
  33. );
  34. }
  35. }
  36.  
  37. class PopoverExampleMulti extends React.Component {
  38. constructor(props) {
  39. super(props);
  40.  
  41. this.state = {
  42. popovers: [
  43. {
  44. placement: 'top',
  45. text: 'Top'
  46. },
  47. {
  48. placement: 'bottom',
  49. text: 'Bottom'
  50. },
  51. {
  52. placement: 'left',
  53. text: 'Left'
  54. },
  55. {
  56. placement: 'right',
  57. text: 'Right'
  58. }
  59. ]
  60. };
  61. }
  62.  
  63. render() {
  64. return (
  65. <div>
  66. { this.state.popovers.map((popover, i) => {
  67. return <PopoverItem key={i} item={popover} id={i} />;
  68. })}
  69. </div>
  70. );
  71. }
  72. }
  73.  
  74. export default PopoverExampleMulti;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement