documentation-button.tsx 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import { useState } from 'react'
  2. import Icon from '../../../shared/components/icon'
  3. import { useSplitTestContext } from '../../../shared/context/split-test-context'
  4. import { sendMB } from '../../../infrastructure/event-tracking'
  5. import PropTypes from 'prop-types'
  6. import { Button } from 'react-bootstrap'
  7. function DocumentationButton() {
  8. const { splitTestVariants } = useSplitTestContext({
  9. splitTestVariants: PropTypes.object,
  10. })
  11. const documentationButtonVariant =
  12. splitTestVariants['documentation-on-editor']
  13. let documentationButtonText = ''
  14. if (documentationButtonVariant === 'latex-help')
  15. documentationButtonText = 'LaTeX help'
  16. else if (documentationButtonVariant === 'documentation')
  17. documentationButtonText = 'Documentation'
  18. else if (documentationButtonVariant === 'help-guides')
  19. documentationButtonText = 'Help guides'
  20. const [showDocumentationButton, setShowDocumentationButton] = useState(
  21. !(documentationButtonVariant === 'default')
  22. )
  23. function handleCloseClick() {
  24. sendMB('file-tree-documentation-dismiss ')
  25. setShowDocumentationButton(false)
  26. }
  27. function handleDocumentationLinkClick() {
  28. sendMB('file-tree-documentation-click')
  29. }
  30. if (!showDocumentationButton) return null
  31. return (
  32. <div className="documentation-btn-container">
  33. <a
  34. href="/learn"
  35. target="_blank"
  36. rel="noreferrer"
  37. className="documentation-link"
  38. onClick={handleDocumentationLinkClick}
  39. >
  40. <Icon type="question-circle" className="outline-caret-icon" />
  41. <h4 className="outline-header-name">{documentationButtonText}</h4>
  42. </a>
  43. <Button bsStyle="link" className="documentation-close">
  44. <Icon
  45. type="times"
  46. onClick={handleCloseClick}
  47. className="outline-caret-icon "
  48. />
  49. </Button>
  50. </div>
  51. )
  52. }
  53. export default DocumentationButton