From 3f9f09726030643ff9b334f1b60c6b55a301880f Mon Sep 17 00:00:00 2001 From: Naidu_4444 <22pa1a0539@vishnu.edu.in> Date: Mon, 23 Jun 2025 11:44:51 +0000 Subject: [PATCH] fix: show specific error when duplicate tag name is entered --- apps/web/modules/projects/settings/lib/tag.ts | 15 +++++++++++++-- apps/web/modules/projects/settings/look/page.tsx | 1 - .../settings/tags/components/single-tag.tsx | 13 +++++++------ 3 files changed, 20 insertions(+), 9 deletions(-) diff --git a/apps/web/modules/projects/settings/lib/tag.ts b/apps/web/modules/projects/settings/lib/tag.ts index ca8b0f7dff..b9b3d7ce20 100644 --- a/apps/web/modules/projects/settings/lib/tag.ts +++ b/apps/web/modules/projects/settings/lib/tag.ts @@ -1,5 +1,6 @@ import "server-only"; import { validateInputs } from "@/lib/utils/validate"; +import { Prisma } from "@prisma/client"; import { prisma } from "@formbricks/database"; import { ZId, ZString } from "@formbricks/types/common"; import { TTag } from "@formbricks/types/tags"; @@ -34,8 +35,18 @@ export const updateTagName = async (id: string, name: string): Promise => }); return tag; - } catch (error) { - throw error; + } catch (error: any) { + if (error instanceof Prisma.PrismaClientKnownRequestError) { + return { + data: null, + error: { message: "already exists" }, + }; + } + + return { + data: null, + error: { message: error.message || "Something went wrong" }, + }; } }; diff --git a/apps/web/modules/projects/settings/look/page.tsx b/apps/web/modules/projects/settings/look/page.tsx index 9def8929f2..a073f3dfff 100644 --- a/apps/web/modules/projects/settings/look/page.tsx +++ b/apps/web/modules/projects/settings/look/page.tsx @@ -26,7 +26,6 @@ export const ProjectLookSettingsPage = async (props: { params: Promise<{ environ } const canRemoveBranding = await getWhiteLabelPermission(organization.billing.plan); - return ( diff --git a/apps/web/modules/projects/settings/tags/components/single-tag.tsx b/apps/web/modules/projects/settings/tags/components/single-tag.tsx index 02a6f00ccc..db0c637273 100644 --- a/apps/web/modules/projects/settings/tags/components/single-tag.tsx +++ b/apps/web/modules/projects/settings/tags/components/single-tag.tsx @@ -72,22 +72,23 @@ export const SingleTag: React.FC = ({ defaultValue={tagName} onBlur={(e) => { updateTagNameAction({ tagId, name: e.target.value.trim() }).then((updateTagNameResponse) => { - if (updateTagNameResponse?.data) { + const response = updateTagNameResponse?.data; + + if (response?.id) { setUpdateTagError(false); toast.success(t("environments.project.tags.tag_updated")); } else { - const errorMessage = getFormattedErrorMessage(updateTagNameResponse); + const errorMessage = response?.error?.message ?? ""; if ( - errorMessage?.includes( - t("environments.project.tags.unique_constraint_failed_on_the_fields") - ) + errorMessage.toLowerCase().includes("already exists") || + errorMessage.toLowerCase().includes("unique constraint failed") ) { toast.error(t("environments.project.tags.tag_already_exists"), { duration: 2000, icon: , }); } else { - toast.error(errorMessage ?? t("common.something_went_wrong_please_try_again"), { + toast.error(t("common.something_went_wrong_please_try_again"), { duration: 2000, }); }