From 6c2007a24ea6e575dd09a060961cd4c6b02e2386 Mon Sep 17 00:00:00 2001
From: lim396 <90199432+lim396@users.noreply.github.com>
Date: Wed, 6 Mar 2024 22:18:15 +0900
Subject: [PATCH] [frontend] Moved the redirect function out of the try-catch
 block (#303)

---
 frontend/app/lib/actions.ts                   |  2 +-
 .../app/ui/user/direct-message-button.tsx     | 21 ++++++++++---------
 2 files changed, 12 insertions(+), 11 deletions(-)

diff --git a/frontend/app/lib/actions.ts b/frontend/app/lib/actions.ts
index 631b9fd6..b20fac8a 100644
--- a/frontend/app/lib/actions.ts
+++ b/frontend/app/lib/actions.ts
@@ -269,7 +269,7 @@ export async function createDirectRoom(userId: number) {
   }
   if (!res.ok) {
     console.error("createDirectRoom error: ", data);
-    return { error: data.message };
+    return "Error";
   } else {
     redirect(`/room/${data.id}`);
   }
diff --git a/frontend/app/ui/user/direct-message-button.tsx b/frontend/app/ui/user/direct-message-button.tsx
index 92562b33..927e0116 100644
--- a/frontend/app/ui/user/direct-message-button.tsx
+++ b/frontend/app/ui/user/direct-message-button.tsx
@@ -21,18 +21,19 @@ const showGetDirectRoomErrorToast = () => {
 export default function DirectMessageButton({ id }: { id: number }) {
   const router = useRouter();
   const createOrRedirectDirectRoom = async () => {
+    let room;
     try {
-      const room = await getDirectRoom(id);
-      if (room.statusCode === 404) {
-        const result = await createDirectRoom(id);
-        if (result.error) {
-          showCreateDirectRoomErrorToast();
-        }
-      } else {
-        router.push(`/room/${room.id}`);
-      }
+      room = await getDirectRoom(id);
     } catch (e) {
-      showGetDirectRoomErrorToast();
+      return showGetDirectRoomErrorToast();
+    }
+    if (room.statusCode === 404) {
+      const result = await createDirectRoom(id);
+      if (result === "Error") {
+        showCreateDirectRoomErrorToast();
+      }
+    } else {
+      router.push(`/room/${room.id}`);
     }
   };
   return <Button onClick={createOrRedirectDirectRoom}>Message</Button>;