Files
lnreader/src/hooks/githubUpdateChecker.js
T
Rajarshee Chatterjee e514876170
Lint / ESLint (push) Has been cancelled
Release v1.1.6
2021-10-27 11:08:41 +05:30

52 lines
1.2 KiB
JavaScript

import {useState, useEffect} from 'react';
import {showToast} from './../hooks/showToast';
export const useGithubUpdateChecker = () => {
const latestReleaseUrl =
'https://api.github.com/repos/rajarsheechatterjee/lnreader/releases/latest';
const [checking, setChecking] = useState(true);
const [latestRelease, setLatestRelease] = useState();
const checkForRelease = async () => {
let res = await fetch(latestReleaseUrl);
res = await res.json();
const release = {
tag_name: res.tag_name,
body: res.body,
downloadUrl: res.assets[0].browser_download_url,
};
setLatestRelease(release);
setChecking(false);
};
const isNewVersion = versionTag => {
let currentVersion = 'v1.1.6';
const regex = /[^\\d.]/;
let newVersion = versionTag.replace(regex, '');
currentVersion = currentVersion.replace(regex, '');
return newVersion !== currentVersion;
};
useEffect(() => {
checkForRelease().catch(e => {
showToast(`Could not connect to github:\n${`${e}`.split(':')[1].trim()}`);
// console.error(e);
});
}, []);
if (!checking) {
const data = {
latestRelease,
isNewVersion: isNewVersion(latestRelease.tag_name),
};
return data;
}
};