From 42fac0f0a53ef509ae96e2b43ba77c2cbf055ce9 Mon Sep 17 00:00:00 2001 From: Claire Nord Date: Fri, 24 Mar 2023 15:30:18 -0700 Subject: [PATCH] app routes: catch loader errors in meta function https://github.com/remix-run/remix/issues/3140 --- app/routes/$gameId.solo.tsx | 12 +++++++++--- app/routes/mock.tsx | 12 +++++++++--- app/routes/room.$roomName.tsx | 12 +++++++++--- 3 files changed, 27 insertions(+), 9 deletions(-) diff --git a/app/routes/$gameId.solo.tsx b/app/routes/$gameId.solo.tsx index 81cf4440..45ecc9b6 100644 --- a/app/routes/$gameId.solo.tsx +++ b/app/routes/$gameId.solo.tsx @@ -8,9 +8,15 @@ import { getGame } from "~/models/game.server"; import { getOrCreateUserSession } from "~/session.server"; import { getRandomName } from "~/utils/name"; -export const meta: MetaFunction = ({ data }) => ({ - title: data.game.title, -}); +export const meta: MetaFunction = ({ data }) => { + try { + return { + title: data.game.title, + }; + } catch (error: unknown) { + return {}; + } +}; export async function loader({ request, params }: LoaderArgs) { const gameId = params.gameId; diff --git a/app/routes/mock.tsx b/app/routes/mock.tsx index 6b099da0..fded650b 100644 --- a/app/routes/mock.tsx +++ b/app/routes/mock.tsx @@ -6,9 +6,15 @@ import GameComponent from "~/components/game"; import { GameEngineContext, useSoloGameEngine } from "~/engine"; import { getMockGame } from "~/models/mock.server"; -export const meta: MetaFunction = ({ data }) => ({ - title: data.game.title, -}); +export const meta: MetaFunction = ({ data }) => { + try { + return { + title: data.game.title, + }; + } catch (error: unknown) { + return {}; + } +}; export async function loader() { const game = await getMockGame(); diff --git a/app/routes/room.$roomName.tsx b/app/routes/room.$roomName.tsx index 774a0f86..90c0a008 100644 --- a/app/routes/room.$roomName.tsx +++ b/app/routes/room.$roomName.tsx @@ -12,9 +12,15 @@ import { getRoom } from "~/models/room.server"; import { getOrCreateUserSession } from "~/session.server"; import { getRandomName } from "~/utils/name"; -export const meta: MetaFunction = ({ data }) => ({ - title: data.game.title, -}); +export const meta: MetaFunction = ({ data }) => { + try { + return { + title: data.game.title, + }; + } catch (error: unknown) { + return {}; + } +}; export async function loader({ request, params }: LoaderArgs) { const roomName = params.roomName;