Version.tsx 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import React from 'react';
  2. import WarningIcon from 'components/common/Icons/WarningIcon';
  3. import { gitCommitPath } from 'lib/paths';
  4. import { useLatestVersion } from 'lib/hooks/api/latestVersion';
  5. import { formatTimestamp } from 'lib/dateTimeHelpers';
  6. import * as S from './Version.styled';
  7. const Version: React.FC = () => {
  8. const { data: latestVersionInfo = {} } = useLatestVersion();
  9. const { buildTime, commitId, isLatestRelease, version } =
  10. latestVersionInfo.build;
  11. const { versionTag } = latestVersionInfo?.latestRelease || '';
  12. const currentVersion =
  13. isLatestRelease && version?.match(versionTag)
  14. ? versionTag
  15. : formatTimestamp(buildTime);
  16. return (
  17. <S.Wrapper>
  18. {!isLatestRelease && (
  19. <S.OutdatedWarning
  20. title={`Your app version is outdated. Current latest version is ${versionTag}`}
  21. >
  22. <WarningIcon />
  23. </S.OutdatedWarning>
  24. )}
  25. {commitId && (
  26. <div>
  27. <S.CurrentCommitLink
  28. title="Current commit"
  29. target="__blank"
  30. href={gitCommitPath(commitId)}
  31. >
  32. {commitId}
  33. </S.CurrentCommitLink>
  34. </div>
  35. )}
  36. <S.CurrentVersion>{currentVersion}</S.CurrentVersion>
  37. </S.Wrapper>
  38. );
  39. };
  40. export default Version;