From dfba8da45bf47e9b2e2ba86383a3b692eb518246 Mon Sep 17 00:00:00 2001 From: imran1khan <107169527+imran1khan@users.noreply.github.com> Date: Sat, 29 Jun 2024 19:39:16 +0530 Subject: [PATCH] projectname can only be unique --- .../new-project/page-client.tsx | 30 ++++++++++++++----- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/apps/dashboard/src/app/(main)/(protected)/(outside-dashboard)/new-project/page-client.tsx b/apps/dashboard/src/app/(main)/(protected)/(outside-dashboard)/new-project/page-client.tsx index cd2ea5841..b61f5da4f 100644 --- a/apps/dashboard/src/app/(main)/(protected)/(outside-dashboard)/new-project/page-client.tsx +++ b/apps/dashboard/src/app/(main)/(protected)/(outside-dashboard)/new-project/page-client.tsx @@ -7,7 +7,7 @@ import { Form } from "@/components/ui/form"; import { InputField, SwitchListField } from "@/components/form-fields"; import { runAsynchronously, runAsynchronouslyWithAlert, wait } from "@stackframe/stack-shared/dist/utils/promises"; import { useRouter } from "@/components/router"; -import { useState } from "react"; +import { useRef, useState } from "react"; import { Button } from "@/components/ui/button"; import Typography from "@/components/ui/typography"; import { toSharedProvider } from "@stackframe/stack-shared/dist/interface/clientInterface"; @@ -26,8 +26,10 @@ export const defaultValues: Partial = { signInMethods: ["credential", "google", "github"], }; -export default function PageClient () { +export default function PageClient() { + const showError = useRef(null); const user = useUser({ or: 'redirect', projectIdMustMatch: "internal" }); + const projectList = user.useOwnedProjects(); const [loading, setLoading] = useState(false); const form = useForm({ resolver: yupResolver(projectFormSchema), @@ -50,6 +52,17 @@ export default function PageClient () { e?.preventDefault(); setLoading(true); let newProject; + if (projectList) { + const project_name = projectList.find((v) => v.displayName === values.displayName); + if (project_name) { + showError.current?.classList.remove('hidden'); + setLoading(false); + return; + } + else { + showError.current?.classList.add('hidden'); + } + } try { newProject = await user.createProject({ displayName: values.displayName, @@ -77,11 +90,14 @@ export default function PageClient () {
Create a new project
- +
runAsynchronouslyWithAlert(form.handleSubmit(onSubmit)(e))} className="space-y-4"> +
+ please enter some outher project name +
{/* a transparent cover that prevents the card being clicked */}
- )} - + ); }