From d79c80459150e47b92eb6d2cfceda8e21e227f60 Mon Sep 17 00:00:00 2001 From: MoltenCoffee <13321277+MoltenCoffee@users.noreply.github.com> Date: Sat, 26 Sep 2020 13:01:42 +0200 Subject: [PATCH] Add hook to check version with GitHub API --- hooks/useVersion.js | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 hooks/useVersion.js diff --git a/hooks/useVersion.js b/hooks/useVersion.js new file mode 100644 index 0000000000..76aefadc90 --- /dev/null +++ b/hooks/useVersion.js @@ -0,0 +1,28 @@ +import { useMemo } from 'react'; +import useFetch from 'hooks/useFetch'; + +export default function useVersion() { + const { data } = useMemo(() => + useFetch('https://api.github.com/repos/mikecao/umami/releases/latest'), + ); + + if (!data || !data['tag_name']) return null; + + const latest = data['tag_name'].startsWith('v') ? data['tag_name'].slice(1) : data['tag_name']; + const current = process.env.VERSION; + + if (latest === current) return null; + + const latestArray = latest.split('.'); + const currentArray = current.split('.'); + + for (let i = 0; i < 3; i++) { + if (Number(latestArray[i]) > Number(currentArray[i])) + return { + current: current, + latest: latest, + }; + } + + return null; +}