main.tsx 986 B

12345678910111213141516171819202122232425262728293031323334353637383940
  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. import OLNotification from '@/shared/components/ol/ol-notification'
  7. type MainProps = {
  8. diff: Nullable<Diff>
  9. isLoading: boolean
  10. }
  11. function Main({ diff, isLoading }: MainProps) {
  12. const { t } = useTranslation()
  13. if (isLoading) {
  14. return <LoadingSpinner />
  15. }
  16. if (!diff) {
  17. return <div className="history-content">No document</div>
  18. }
  19. if (diff.binary) {
  20. return (
  21. <div className="history-content">
  22. <OLNotification content={t('binary_history_error')} type="info" />
  23. </div>
  24. )
  25. }
  26. if (diff.docDiff) {
  27. const { doc, highlights } = diff.docDiff
  28. return <DocumentDiffViewer doc={doc} highlights={highlights} />
  29. }
  30. return null
  31. }
  32. export default Main