import React, { useEffect, useState } from 'react'; import { gitCommitPath } from 'lib/paths'; import { GIT_REPO_LATEST_RELEASE_LINK } from 'lib/constants'; import WarningIcon from 'components/common/Icons/WarningIcon'; import * as S from './Version.styled'; import compareVersions from './compareVersions'; export interface VesionProps { tag: string; commit?: string; } const Version: React.FC = ({ tag, commit }) => { const [latestVersionInfo, setLatestVersionInfo] = useState({ outdated: false, latestTag: '', }); useEffect(() => { fetch(GIT_REPO_LATEST_RELEASE_LINK) .then((response) => response.json()) .then((data) => { setLatestVersionInfo({ outdated: compareVersions(tag, data.tag_name) === -1, latestTag: data.tag_name, }); }); }, [tag]); const { outdated, latestTag } = latestVersionInfo; return ( {tag} {outdated && ( )} {commit && ( <> ( {commit} ) )} ); }; export default Version;