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;