mirror of
https://github.com/kremalicious/umami.git
synced 2024-12-03 14:34:46 +01:00
48 lines
1.4 KiB
JavaScript
48 lines
1.4 KiB
JavaScript
import React from 'react';
|
|
import { FormattedMessage } from 'react-intl';
|
|
import useVersion from 'hooks/useVersion';
|
|
import styles from './UpdateNotice.module.css';
|
|
import ButtonLayout from '../layout/ButtonLayout';
|
|
import Button from './Button';
|
|
import useForceUpdate from '../../hooks/useForceUpdate';
|
|
|
|
export default function UpdateNotice() {
|
|
const forceUpdate = useForceUpdate();
|
|
const { hasUpdate, checked, latest, updateCheck } = useVersion(true);
|
|
|
|
function handleViewClick() {
|
|
location.href = 'https://github.com/mikecao/umami/releases';
|
|
updateCheck();
|
|
forceUpdate();
|
|
}
|
|
|
|
function handleDismissClick() {
|
|
updateCheck();
|
|
forceUpdate();
|
|
}
|
|
|
|
if (!hasUpdate || checked) {
|
|
return null;
|
|
}
|
|
|
|
return (
|
|
<div className={styles.notice}>
|
|
<div className={styles.message}>
|
|
<FormattedMessage
|
|
id="message.new-version-available"
|
|
defaultMessage="A new version of umami {version} is available!"
|
|
values={{ version: `v${latest}` }}
|
|
/>
|
|
</div>
|
|
<ButtonLayout>
|
|
<Button size="xsmall" variant="action" onClick={handleViewClick}>
|
|
<FormattedMessage id="button.view-details" defaultMessage="View details" />
|
|
</Button>
|
|
<Button size="xsmall" onClick={handleDismissClick}>
|
|
<FormattedMessage id="button.dismiss" defaultMessage="Dismiss" />
|
|
</Button>
|
|
</ButtonLayout>
|
|
</div>
|
|
);
|
|
}
|