Skip to content

Commit 77021d2

Browse files
Handle downtime errors, give more information on error pages. (#3402)
Co-authored-by: Jai Agrawal <18202329+Geometrically@users.noreply.github.com>
1 parent 16893ec commit 77021d2

File tree

7 files changed

+465
-59
lines changed

7 files changed

+465
-59
lines changed

apps/frontend/nuxt.config.ts

Lines changed: 29 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@ export default defineNuxtConfig({
126126
homePageSearch?: any[];
127127
homePageNotifs?: any[];
128128
products?: any[];
129+
errors?: number[];
129130
} = {};
130131

131132
try {
@@ -157,6 +158,14 @@ export default defineNuxtConfig({
157158
},
158159
};
159160

161+
const caughtErrorCodes = new Set<number>();
162+
163+
function handleFetchError(err: any, defaultValue: any) {
164+
console.error("Error generating state: ", err);
165+
caughtErrorCodes.add(err.status);
166+
return defaultValue;
167+
}
168+
160169
const [
161170
categories,
162171
loaders,
@@ -168,15 +177,25 @@ export default defineNuxtConfig({
168177
homePageNotifs,
169178
products,
170179
] = await Promise.all([
171-
$fetch(`${API_URL}tag/category`, headers),
172-
$fetch(`${API_URL}tag/loader`, headers),
173-
$fetch(`${API_URL}tag/game_version`, headers),
174-
$fetch(`${API_URL}tag/donation_platform`, headers),
175-
$fetch(`${API_URL}tag/report_type`, headers),
176-
$fetch(`${API_URL}projects_random?count=60`, headers),
177-
$fetch(`${API_URL}search?limit=3&query=leave&index=relevance`, headers),
178-
$fetch(`${API_URL}search?limit=3&query=&index=updated`, headers),
179-
$fetch(`${API_URL.replace("/v2/", "/_internal/")}billing/products`, headers),
180+
$fetch(`${API_URL}tag/category`, headers).catch((err) => handleFetchError(err, [])),
181+
$fetch(`${API_URL}tag/loader`, headers).catch((err) => handleFetchError(err, [])),
182+
$fetch(`${API_URL}tag/game_version`, headers).catch((err) => handleFetchError(err, [])),
183+
$fetch(`${API_URL}tag/donation_platform`, headers).catch((err) =>
184+
handleFetchError(err, []),
185+
),
186+
$fetch(`${API_URL}tag/report_type`, headers).catch((err) => handleFetchError(err, [])),
187+
$fetch(`${API_URL}projects_random?count=60`, headers).catch((err) =>
188+
handleFetchError(err, []),
189+
),
190+
$fetch(`${API_URL}search?limit=3&query=leave&index=relevance`, headers).catch((err) =>
191+
handleFetchError(err, {}),
192+
),
193+
$fetch(`${API_URL}search?limit=3&query=&index=updated`, headers).catch((err) =>
194+
handleFetchError(err, {}),
195+
),
196+
$fetch(`${API_URL.replace("/v2/", "/_internal/")}billing/products`, headers).catch((err) =>
197+
handleFetchError(err, []),
198+
),
180199
]);
181200

182201
state.categories = categories;
@@ -188,6 +207,7 @@ export default defineNuxtConfig({
188207
state.homePageSearch = homePageSearch;
189208
state.homePageNotifs = homePageNotifs;
190209
state.products = products;
210+
state.errors = [...caughtErrorCodes];
191211

192212
await fs.writeFile("./src/generated/state.json", JSON.stringify(state));
193213

apps/frontend/src/assets/styles/layout.scss

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@
126126
max-width: 80rem;
127127
column-gap: 0.75rem;
128128
padding: 0 1.5rem;
129+
padding-bottom: 1.5rem;
129130

130131
grid-template:
131132
"header"

0 commit comments

Comments
 (0)