| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- import { useTranslation } from 'react-i18next'
- import Icon from '../../../shared/components/icon'
- import PropTypes from 'prop-types'
- import { memo } from 'react'
- export function PdfLogsButtonContent({
- showLogs,
- logEntries,
- codeCheckFailed,
- }) {
- const { t } = useTranslation()
- if (showLogs) {
- return (
- <>
- <Icon type="file-pdf-o" />
- <span className="toolbar-text toolbar-hide-small">{t('view_pdf')}</span>
- </>
- )
- }
- if (codeCheckFailed) {
- return (
- <>
- <Icon type="exclamation-triangle" />
- <span className="toolbar-text toolbar-hide-small">
- {t('code_check_failed')}
- </span>
- </>
- )
- }
- const count = logEntries?.errors?.length || logEntries?.warnings?.length
- if (!count) {
- return (
- <>
- <Icon type="file-text-o" />
- <span className="toolbar-text toolbar-hide-small">
- {t('view_logs')}
- </span>
- </>
- )
- }
- return (
- <>
- <Icon type="file-text-o" />
- <span className="btn-toggle-logs-label toolbar-text toolbar-hide-small">
- {logEntries.errors?.length
- ? t('your_project_has_an_error', { count })
- : t('view_warning', { count })}
- <span className="sr-hidden">
- {count > 1 && ` (${count > 99 ? '99+' : count})`}
- </span>
- </span>
- </>
- )
- }
- PdfLogsButtonContent.propTypes = {
- codeCheckFailed: PropTypes.bool,
- showLogs: PropTypes.bool,
- logEntries: PropTypes.object,
- }
- export default memo(PdfLogsButtonContent)
|