pdf-logs-pane-info-notice.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import { memo } from 'react'
  2. import { useTranslation } from 'react-i18next'
  3. import usePersistedState from '../../../shared/hooks/use-persisted-state'
  4. function PdfLogsPaneInfoNotice() {
  5. const { t } = useTranslation()
  6. const [dismissed, setDismissed] = usePersistedState(
  7. 'logs_pane.dismissed_info_notice',
  8. false
  9. )
  10. if (dismissed) {
  11. return null
  12. }
  13. return (
  14. <div className="log-entry">
  15. <div className="log-entry-header log-entry-header-raw">
  16. <div className="log-entry-header-icon-container">
  17. <span className="info-badge" />
  18. </div>
  19. <h3 className="log-entry-header-title">
  20. {t('logs_pane_info_message')}
  21. </h3>
  22. <a
  23. href="https://forms.gle/zYByeRPcDtA6nDS19"
  24. target="_blank"
  25. rel="noopener noreferrer"
  26. className="log-entry-header-link log-entry-header-link-raw"
  27. >
  28. <span className="log-entry-header-link-location">
  29. {t('give_feedback')}
  30. </span>
  31. </a>
  32. <button
  33. className="btn-inline-link log-entry-header-link"
  34. type="button"
  35. aria-label={t('dismiss')}
  36. onClick={() => setDismissed(true)}
  37. >
  38. <span aria-hidden="true">&times;</span>
  39. </button>
  40. </div>
  41. </div>
  42. )
  43. }
  44. export default memo(PdfLogsPaneInfoNotice)