mirror of
https://github.com/kremalicious/umami.git
synced 2025-02-14 21:10:34 +01:00
Updated check updates logic.
This commit is contained in:
parent
d556806c64
commit
5873a56fff
@ -6,15 +6,10 @@ import { setItem } from 'lib/web';
|
|||||||
import { REPO_URL, VERSION_CHECK } from 'lib/constants';
|
import { REPO_URL, VERSION_CHECK } from 'lib/constants';
|
||||||
import Button from './Button';
|
import Button from './Button';
|
||||||
import styles from './UpdateNotice.module.css';
|
import styles from './UpdateNotice.module.css';
|
||||||
import useUser from 'hooks/useUser';
|
|
||||||
import useConfig from 'hooks/useConfig';
|
|
||||||
|
|
||||||
export default function UpdateNotice() {
|
export default function UpdateNotice() {
|
||||||
const { user } = useUser();
|
|
||||||
const { updatesDisabled } = useConfig();
|
|
||||||
const { latest, checked, hasUpdate, releaseUrl } = useStore();
|
const { latest, checked, hasUpdate, releaseUrl } = useStore();
|
||||||
const [dismissed, setDismissed] = useState(false);
|
const [dismissed, setDismissed] = useState(false);
|
||||||
const allowCheck = user?.is_admin && !updatesDisabled;
|
|
||||||
|
|
||||||
const updateCheck = useCallback(() => {
|
const updateCheck = useCallback(() => {
|
||||||
setItem(VERSION_CHECK, { version: latest, time: Date.now() });
|
setItem(VERSION_CHECK, { version: latest, time: Date.now() });
|
||||||
@ -32,12 +27,12 @@ export default function UpdateNotice() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!checked && allowCheck) {
|
if (!checked) {
|
||||||
checkVersion();
|
checkVersion();
|
||||||
}
|
}
|
||||||
}, [checked]);
|
}, [checked]);
|
||||||
|
|
||||||
if (!hasUpdate || dismissed || !allowCheck) {
|
if (!hasUpdate || dismissed) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8,22 +8,26 @@ import ThemeButton from 'components/settings/ThemeButton';
|
|||||||
import HamburgerButton from 'components/common/HamburgerButton';
|
import HamburgerButton from 'components/common/HamburgerButton';
|
||||||
import UpdateNotice from 'components/common/UpdateNotice';
|
import UpdateNotice from 'components/common/UpdateNotice';
|
||||||
import UserButton from 'components/settings/UserButton';
|
import UserButton from 'components/settings/UserButton';
|
||||||
import useUser from 'hooks/useUser';
|
|
||||||
import { HOMEPAGE_URL } from 'lib/constants';
|
import { HOMEPAGE_URL } from 'lib/constants';
|
||||||
|
import useConfig from '/hooks/useConfig';
|
||||||
|
import useUser from 'hooks/useUser';
|
||||||
import Logo from 'assets/logo.svg';
|
import Logo from 'assets/logo.svg';
|
||||||
import styles from './Header.module.css';
|
import styles from './Header.module.css';
|
||||||
|
|
||||||
export default function Header() {
|
export default function Header() {
|
||||||
const { user } = useUser();
|
const { user } = useUser();
|
||||||
const { pathname } = useRouter();
|
const { pathname } = useRouter();
|
||||||
|
const { updatesDisabled } = useConfig();
|
||||||
|
const isSharePage = pathname.includes('/share/');
|
||||||
|
const allowUpdate = user?.is_admin && !updatesDisabled && !isSharePage;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<UpdateNotice />
|
{allowUpdate && <UpdateNotice />}
|
||||||
<header className={classNames(styles.header, 'row')}>
|
<header className={classNames(styles.header, 'row')}>
|
||||||
<div className={styles.title}>
|
<div className={styles.title}>
|
||||||
<Icon icon={<Logo />} size="large" className={styles.logo} />
|
<Icon icon={<Logo />} size="large" className={styles.logo} />
|
||||||
<Link href={pathname.includes('/share') ? HOMEPAGE_URL : '/'}>umami</Link>
|
<Link href={isSharePage ? HOMEPAGE_URL : '/'}>umami</Link>
|
||||||
</div>
|
</div>
|
||||||
<HamburgerButton />
|
<HamburgerButton />
|
||||||
{user && (
|
{user && (
|
||||||
|
Loading…
Reference in New Issue
Block a user