PanelOptionsGroup.tsx 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. // Libraries
  2. import React, { FunctionComponent } from 'react';
  3. interface Props {
  4. title?: string;
  5. onClose?: () => void;
  6. children: JSX.Element | JSX.Element[] | boolean;
  7. onAdd?: () => void;
  8. }
  9. export const PanelOptionsGroup: FunctionComponent<Props> = props => {
  10. return (
  11. <div className="panel-options-group">
  12. {props.onAdd ? (
  13. <div className="panel-options-group__header">
  14. <button className="panel-options-group__add-btn" onClick={props.onAdd}>
  15. <div className="panel-options-group__add-circle">
  16. <i className="fa fa-plus" />
  17. </div>
  18. <span className="panel-options-group__title">{props.title}</span>
  19. </button>
  20. </div>
  21. ) : (
  22. props.title && (
  23. <div className="panel-options-group__header">
  24. <span className="panel-options-group__title">{props.title}</span>
  25. {props.onClose && (
  26. <button className="btn btn-link" onClick={props.onClose}>
  27. <i className="fa fa-remove" />
  28. </button>
  29. )}
  30. </div>
  31. )
  32. )}
  33. {props.children && <div className="panel-options-group__body">{props.children}</div>}
  34. </div>
  35. );
  36. };