aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/AppUpdateInfoBar.tsx
diff options
context:
space:
mode:
authorLibravatar Markus Hatvan <markus_hatvan@aon.at>2021-10-14 08:48:08 +0200
committerLibravatar GitHub <noreply@github.com>2021-10-14 08:48:08 +0200
commitf06c7da3e09afbbe757101677b4c8f32d051e471 (patch)
treeb8ceb13fef267c6963931286d082a07d62ed3402 /src/components/AppUpdateInfoBar.tsx
parent5.6.3-nightly.33 [skip ci] (diff)
downloadferdium-app-f06c7da3e09afbbe757101677b4c8f32d051e471.tar.gz
ferdium-app-f06c7da3e09afbbe757101677b4c8f32d051e471.tar.zst
ferdium-app-f06c7da3e09afbbe757101677b4c8f32d051e471.zip
chore: convert class components to functional (#2065)
Diffstat (limited to 'src/components/AppUpdateInfoBar.tsx')
-rw-r--r--src/components/AppUpdateInfoBar.tsx55
1 files changed, 55 insertions, 0 deletions
diff --git a/src/components/AppUpdateInfoBar.tsx b/src/components/AppUpdateInfoBar.tsx
new file mode 100644
index 000000000..1dd3723cc
--- /dev/null
+++ b/src/components/AppUpdateInfoBar.tsx
@@ -0,0 +1,55 @@
1import { defineMessages, useIntl } from 'react-intl';
2
3import InfoBar from './ui/InfoBar';
4import { GITHUB_FERDI_URL } from '../config';
5import { openExternalUrl } from '../helpers/url-helpers';
6
7const messages = defineMessages({
8 updateAvailable: {
9 id: 'infobar.updateAvailable',
10 defaultMessage: 'A new update for Ferdi is available.',
11 },
12 changelog: {
13 id: 'infobar.buttonChangelog',
14 defaultMessage: 'What is new?',
15 },
16 buttonInstallUpdate: {
17 id: 'infobar.buttonInstallUpdate',
18 defaultMessage: 'Restart & install update',
19 },
20});
21
22type Props = {
23 onInstallUpdate: () => void;
24 onHide: () => void;
25};
26
27const AppUpdateInfoBar = ({ onInstallUpdate, onHide }: Props) => {
28 const intl = useIntl();
29
30 return (
31 <InfoBar
32 type="primary"
33 ctaLabel={intl.formatMessage(messages.buttonInstallUpdate)}
34 onClick={onInstallUpdate}
35 onHide={onHide}
36 >
37 <span className="mdi mdi-information" />
38 {intl.formatMessage(messages.updateAvailable)}{' '}
39 <button
40 className="info-bar__inline-button"
41 type="button"
42 onClick={() =>
43 openExternalUrl(
44 `${GITHUB_FERDI_URL}/ferdi/blob/develop/CHANGELOG.md`,
45 true,
46 )
47 }
48 >
49 <u>{intl.formatMessage(messages.changelog)}</u>
50 </button>
51 </InfoBar>
52 );
53};
54
55export default AppUpdateInfoBar;