file-tree-modal-create-file-mode.jsx 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. import classnames from 'classnames'
  2. import PropTypes from 'prop-types'
  3. import { useFileTreeActionable } from '../../contexts/file-tree-actionable'
  4. import * as eventTracking from '../../../../infrastructure/event-tracking'
  5. import OLButton from '@/features/ui/components/ol/ol-button'
  6. import MaterialIcon from '@/shared/components/material-icon'
  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. <OLButton
  16. variant="link"
  17. onClick={handleClick}
  18. className="modal-new-file-mode"
  19. >
  20. <MaterialIcon type={icon} />
  21. &nbsp;
  22. {label}
  23. </OLButton>
  24. </li>
  25. )
  26. }
  27. FileTreeModalCreateFileMode.propTypes = {
  28. mode: PropTypes.string.isRequired,
  29. icon: PropTypes.string.isRequired,
  30. label: PropTypes.string.isRequired,
  31. }