From a7e7d288a7c07a281cdb912650ce6365aa97a09c Mon Sep 17 00:00:00 2001 From: Michael Chappell <7581002+mchappell@users.noreply.github.com> Date: Mon, 27 Jan 2025 18:24:22 +0000 Subject: [PATCH] feat(extension): re-introduce static release notes (#1671) --- .../components/Announcement/Announcement.tsx | 26 +++++++++++++++---- .../src/release-notes/1_19_0.tsx | 18 +++++++++++++ .../src/release-notes/default.tsx | 25 ------------------ 3 files changed, 39 insertions(+), 30 deletions(-) create mode 100644 apps/browser-extension-wallet/src/release-notes/1_19_0.tsx delete mode 100644 apps/browser-extension-wallet/src/release-notes/default.tsx diff --git a/apps/browser-extension-wallet/src/components/Announcement/Announcement.tsx b/apps/browser-extension-wallet/src/components/Announcement/Announcement.tsx index 4ef932a5f8..0298480266 100644 --- a/apps/browser-extension-wallet/src/components/Announcement/Announcement.tsx +++ b/apps/browser-extension-wallet/src/components/Announcement/Announcement.tsx @@ -1,10 +1,11 @@ -import React from 'react'; +/* eslint-disable no-console */ +import React, { useEffect, useState, useCallback } from 'react'; import { useTranslation } from 'react-i18next'; import { Modal, Typography } from 'antd'; import { Button } from '@lace/common'; import styles from './Announcement.module.scss'; import { ExtensionUpdateData } from '@lib/scripts/types'; -import DefaultReleaseNote from '@src/release-notes/default'; +import { fetchNotes } from './ReleaseNotes'; const { Title, Text } = Typography; @@ -16,8 +17,25 @@ interface AnnouncementProps { } export const Announcement = ({ visible, onConfirm, version, reason }: AnnouncementProps): React.ReactElement => { + const [releaseNotes, setReleaseNotes] = useState<string>(''); const { t } = useTranslation(); + const loadReleaseNotes = useCallback(async () => { + let notes = ''; + if (version) { + try { + notes = await fetchNotes(version); + } catch (error) { + console.log(error); + } + } + setReleaseNotes(notes); + }, [version]); + + useEffect(() => { + loadReleaseNotes(); + }, [version, loadReleaseNotes]); + return ( <Modal centered @@ -34,9 +52,7 @@ export const Announcement = ({ visible, onConfirm, version, reason }: Announceme <Title level={3} className={styles.title}> {t('announcement.title.text', { version })} </Title> - <Text className={styles.description}> - <DefaultReleaseNote version={version} /> - </Text> + <Text className={styles.description}>{releaseNotes}</Text> </div> </div> <Button className={styles.button} onClick={onConfirm} block> diff --git a/apps/browser-extension-wallet/src/release-notes/1_19_0.tsx b/apps/browser-extension-wallet/src/release-notes/1_19_0.tsx new file mode 100644 index 0000000000..54c060c36a --- /dev/null +++ b/apps/browser-extension-wallet/src/release-notes/1_19_0.tsx @@ -0,0 +1,18 @@ +/* eslint-disable camelcase */ +import React from 'react'; + +const ReleaseNote_1_19_0 = (): React.ReactElement => ( + <> + <p>This release contains a couple of exciting updates:</p> + <ul style={{ listStyleType: 'disc', margin: 0 }}> + <li> + <strong>DApp Explorer:</strong> Discover and connect with dApps directly from Lace. + </li> + <li> + <strong>Snappier UX:</strong> Improved performance with more local caching + </li> + </ul> + </> +); + +export default ReleaseNote_1_19_0; diff --git a/apps/browser-extension-wallet/src/release-notes/default.tsx b/apps/browser-extension-wallet/src/release-notes/default.tsx deleted file mode 100644 index daeae5b9aa..0000000000 --- a/apps/browser-extension-wallet/src/release-notes/default.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import React from 'react'; -import { useTranslation } from 'react-i18next'; - -type DefaultReleaseNoteProps = { - version: string; -}; -const DefaultReleaseNote = ({ version }: DefaultReleaseNoteProps): React.ReactElement => { - const { t } = useTranslation(); - - const [major, minor, patch] = version.split('.'); - const isPatchVersion = !!patch && Number(patch) > 0; - const link = isPatchVersion - ? 'https://discord.com/invite/lacewallet' - : `https://www.lace.io/blog/lace-${major}-${minor}-${patch}-release`; - return ( - <p> - {t('announcement.description.text')}{' '} - <a href={link} target="_blank"> - {t('announcement.description.linktext')} - </a> - </p> - ); -}; - -export default DefaultReleaseNote;