file-tree-modal-create-file-mode.js 1.0 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import classnames from 'classnames'
  2. import { Button } from 'react-bootstrap'
  3. import PropTypes from 'prop-types'
  4. import Icon from '../../../../shared/components/icon'
  5. import { useFileTreeActionable } from '../../contexts/file-tree-actionable'
  6. import * as eventTracking from '../../../../infrastructure/event-tracking'
  7. export default function FileTreeModalCreateFileMode({ mode, icon, label }) {
  8. const { newFileCreateMode, startCreatingFile } = useFileTreeActionable()
  9. const handleClick = () => {
  10. startCreatingFile(mode)
  11. eventTracking.sendMB('file-modal-click', { method: mode })
  12. }
  13. return (
  14. <li className={classnames({ active: newFileCreateMode === mode })}>
  15. <Button
  16. bsStyle="link"
  17. block
  18. onClick={handleClick}
  19. className="modal-new-file-mode"
  20. >
  21. <Icon type={icon} fw />
  22. &nbsp;
  23. {label}
  24. </Button>
  25. </li>
  26. )
  27. }
  28. FileTreeModalCreateFileMode.propTypes = {
  29. mode: PropTypes.string.isRequired,
  30. icon: PropTypes.string.isRequired,
  31. label: PropTypes.string.isRequired,
  32. }