documentation-button.tsx 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  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. return (
  31. <div className="outline-pane">
  32. {showDocumentationButton ? (
  33. <header className="outline-footer">
  34. <div className="outline-header-expand-collapse-btn documentation-btn">
  35. <a
  36. href="/learn"
  37. target="_blank"
  38. rel="noreferrer"
  39. className="documentation-link"
  40. onClick={handleDocumentationLinkClick}
  41. >
  42. <Icon
  43. type="question-circle"
  44. className="outline-caret-icon"
  45. style={{ color: 'white' }}
  46. />
  47. <h4 className="outline-header-name">{documentationButtonText}</h4>
  48. </a>
  49. <Button bsStyle="link">
  50. <Icon
  51. style={{ color: 'white' }}
  52. type="times"
  53. onClick={handleCloseClick}
  54. className="outline-caret-icon"
  55. />
  56. </Button>
  57. </div>
  58. </header>
  59. ) : null}
  60. </div>
  61. )
  62. }
  63. export default DocumentationButton