From 6137a9fcc5769387690493c05fdda78aa8c22683 Mon Sep 17 00:00:00 2001
From: scientificworld <30764166+scientificworld@users.noreply.github.com>
Date: Wed, 26 Apr 2023 06:58:13 +0800
Subject: [PATCH] fix: cannot open welcome page when offline (#1493)

---
 patches/feat-announcements.patch | 22 +++++++++++++---------
 1 file changed, 13 insertions(+), 9 deletions(-)

diff --git a/patches/feat-announcements.patch b/patches/feat-announcements.patch
index 839bc99..e1fe707 100644
--- a/patches/feat-announcements.patch
+++ b/patches/feat-announcements.patch
@@ -43,7 +43,7 @@ index 46949b2..174e65f 100644
 -				reset(leftColumn, startList.getDomElement(), recentList.getDomElement());
 +				reset(leftColumn, startList.getDomElement(), announcementList.getDomElement());
  				reset(rightColumn, featuredExtensionList.getDomElement());
-@@ -982,2 +989,51 @@ export class GettingStartedPage extends EditorPane {
+@@ -982,2 +989,55 @@ export class GettingStartedPage extends EditorPane {
  
 +	private async buildAnnouncementList(): Promise<GettingStartedIndexList<AnnouncementEntry>> {
 +		const renderAnnouncement = (announcement: AnnouncementEntry) => {
@@ -75,15 +75,19 @@ index 46949b2..174e65f 100644
 +
 +			if (showExtras) {
 +				const branch = this.productService.quality === 'insider' ? 'insider' : 'master';
-+				const res = await fetch(`https://raw.githubusercontent.com/VSCodium/vscodium/${branch}/announcements-extra.json`);
++				await fetch(`https://raw.githubusercontent.com/VSCodium/vscodium/${branch}/announcements-extra.json`)
++					.then(async res => {
++						if (res.ok) {
++							var extraAnnouncements = await res.json() as AnnouncementEntry[];
 +
-+				if (res.ok) {
-+					var extraAnnouncements = await res.json() as AnnouncementEntry[];
-+
-+					this.announcementData = [...extraAnnouncements, ...BUILTIN_ANNOUNCEMENTS];
-+				} else {
-+					this.announcementData = BUILTIN_ANNOUNCEMENTS;
-+				}
++							this.announcementData = [...extraAnnouncements, ...BUILTIN_ANNOUNCEMENTS];
++						} else {
++							this.announcementData = BUILTIN_ANNOUNCEMENTS;
++						}
++					})
++					.catch(err => {
++						this.announcementData = BUILTIN_ANNOUNCEMENTS;
++					});
 +			} else {
 +				this.announcementData = BUILTIN_ANNOUNCEMENTS;
 +			}