You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

StatelessToolbar.web.js 1.4KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. /* @flow */
  2. import React, { Component } from 'react';
  3. /**
  4. * Implements a toolbar in React/Web. It is a strip that contains a set of
  5. * toolbar items such as buttons.
  6. *
  7. * @class StatelessToolbar
  8. * @extends Component
  9. */
  10. export default class StatelessToolbar extends Component {
  11. /**
  12. * Base toolbar component's property types.
  13. *
  14. * @static
  15. */
  16. static propTypes = {
  17. /**
  18. * Children of current React component.
  19. */
  20. children: React.PropTypes.node,
  21. /**
  22. * Toolbar's class name.
  23. */
  24. className: React.PropTypes.string,
  25. /**
  26. * Handler for mouse out event.
  27. */
  28. onMouseOut: React.PropTypes.func,
  29. /**
  30. * Handler for mouse over event.
  31. */
  32. onMouseOver: React.PropTypes.func
  33. };
  34. /**
  35. * Implements React's {@link Component#render()}.
  36. *
  37. * @inheritdoc
  38. * @returns {ReactElement}
  39. */
  40. render(): ReactElement<*> {
  41. const {
  42. className,
  43. onMouseOut,
  44. onMouseOver
  45. } = this.props;
  46. return (
  47. <div
  48. className = { `toolbar ${className}` }
  49. onMouseOut = { onMouseOut }
  50. onMouseOver = { onMouseOver }>
  51. {
  52. this.props.children
  53. }
  54. </div>
  55. );
  56. }
  57. }