main.tsx 919 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. import { Nullable } from '../../../../../../types/utils'
  2. import { Diff } from '../../services/types/doc'
  3. import DocumentDiffViewer from './document-diff-viewer'
  4. import LoadingSpinner from '../../../../shared/components/loading-spinner'
  5. import { useTranslation } from 'react-i18next'
  6. type MainProps = {
  7. diff: Nullable<Diff>
  8. isLoading: boolean
  9. }
  10. function Main({ diff, isLoading }: MainProps) {
  11. const { t } = useTranslation()
  12. if (isLoading) {
  13. return <LoadingSpinner />
  14. }
  15. if (!diff) {
  16. return <div className="history-content">No document</div>
  17. }
  18. if (diff.binary) {
  19. return (
  20. <div className="history-content">
  21. <div className="alert alert-info">{t('binary_history_error')}</div>
  22. </div>
  23. )
  24. }
  25. if (diff.docDiff) {
  26. const { doc, highlights } = diff.docDiff
  27. return <DocumentDiffViewer doc={doc} highlights={highlights} />
  28. }
  29. return null
  30. }
  31. export default Main