Updated version checking.

This commit is contained in:
Mike Cao 2022-06-24 01:54:55 -07:00
parent 1bfb26ab44
commit c8ca0a0a56
7 changed files with 38 additions and 42 deletions

View file

@ -1,27 +1,38 @@
import React from 'react';
import { useState, useEffect, useCallback } from 'react';
import { FormattedMessage } from 'react-intl';
import useVersion from 'hooks/useVersion';
import styles from './UpdateNotice.module.css';
import ButtonLayout from '../layout/ButtonLayout';
import ButtonLayout from 'components/layout/ButtonLayout';
import useStore, { checkVersion } from 'store/version';
import { setItem } from 'lib/web';
import { VERSION_CHECK, VERSION_URL } from 'lib/constants';
import Button from './Button';
import useForceUpdate from '../../hooks/useForceUpdate';
import styles from './UpdateNotice.module.css';
export default function UpdateNotice() {
const forceUpdate = useForceUpdate();
const { hasUpdate, checked, latest, updateCheck } = useVersion(true);
const { latest, checked, hasUpdate } = useStore();
const [dismissed, setDismissed] = useState(false);
const updateCheck = useCallback(() => {
setItem(VERSION_CHECK, { version: latest, time: Date.now() });
}, [latest]);
function handleViewClick() {
location.href = 'https://github.com/mikecao/umami/releases';
updateCheck();
forceUpdate();
setDismissed(true);
location.href = VERSION_URL;
}
function handleDismissClick() {
updateCheck();
forceUpdate();
setDismissed(true);
}
if (!hasUpdate || checked) {
useEffect(() => {
if (!checked) {
checkVersion();
}
}, []);
if (!hasUpdate || dismissed) {
return null;
}

View file

@ -3,11 +3,11 @@ import classNames from 'classnames';
import { FormattedMessage } from 'react-intl';
import Link from 'components/common/Link';
import styles from './Footer.module.css';
import useVersion from 'hooks/useVersion';
import useStore from 'store/version';
import { HOMEPAGE_URL, VERSION_URL } from 'lib/constants';
export default function Footer() {
const { current } = useVersion();
const { current } = useStore();
return (
<footer className={classNames(styles.footer, 'row')}>

View file

@ -17,9 +17,11 @@ export default function Header() {
const { user } = useUser();
const { pathname } = useRouter();
console.log('wat', process.env.updatesDisabled);
return (
<>
{user?.is_admin && <UpdateNotice />}
{user?.is_admin && !process.env.updatesDisabled && <UpdateNotice />}
<header className={classNames(styles.header, 'row')}>
<div className={styles.title}>
<Icon icon={<Logo />} size="large" className={styles.logo} />