From 3c068397d6b0022b511de28dec7c6b3894ffb0a9 Mon Sep 17 00:00:00 2001 From: mehedi-hasan Date: Sun, 5 May 2024 21:23:41 +0600 Subject: [PATCH] feat: edit skill page --- .../dashboard/api-communications/add/page.tsx | 10 ++-- .../dashboard/commits/add/page.tsx | 2 +- .../dashboard/criteria/add/page.tsx | 2 +- .../dashboard/evaluations/add/page.tsx | 4 +- .../dashboard/organizations/add/page.tsx | 4 +- .../(dashboard)/dashboard/skills/add/page.tsx | 12 +++-- .../dashboard/skills/edit/[id]/page.tsx | 47 +++++++++++++++++++ .../(dashboard)/dashboard/users/add/page.tsx | 2 +- .../{add-skill-form.tsx => skill-form.tsx} | 28 ++++++++--- src/components/skills-table/cell-action.tsx | 15 +++--- 10 files changed, 98 insertions(+), 28 deletions(-) create mode 100644 src/app/(dashboard)/dashboard/skills/edit/[id]/page.tsx rename src/components/{add-skill-form.tsx => skill-form.tsx} (79%) diff --git a/src/app/(dashboard)/dashboard/api-communications/add/page.tsx b/src/app/(dashboard)/dashboard/api-communications/add/page.tsx index 744fa08..cc5e671 100644 --- a/src/app/(dashboard)/dashboard/api-communications/add/page.tsx +++ b/src/app/(dashboard)/dashboard/api-communications/add/page.tsx @@ -1,4 +1,4 @@ -"use client" +"use client"; import AddAPICommunicationForm from "@/components/api-communication-form"; import Breadcrumb from "@/components/breadcrumb"; @@ -12,7 +12,7 @@ const breadcrumbItems = [ { title: "Add" }, ]; -export default function SettingsDisplayPage() { +export default function Page() { return (
@@ -27,9 +27,11 @@ export default function SettingsDisplayPage() { - {}} + {}} btn1_content="Create" - btn2_content="Create and add another" /> + btn2_content="Create and add another" + />
diff --git a/src/app/(dashboard)/dashboard/commits/add/page.tsx b/src/app/(dashboard)/dashboard/commits/add/page.tsx index 3bbcd70..1c7ef85 100644 --- a/src/app/(dashboard)/dashboard/commits/add/page.tsx +++ b/src/app/(dashboard)/dashboard/commits/add/page.tsx @@ -10,7 +10,7 @@ const breadcrumbItems = [ { title: "Create Commit" }, ]; -export default function SettingsDisplayPage() { +export default function Page() { return (
diff --git a/src/app/(dashboard)/dashboard/criteria/add/page.tsx b/src/app/(dashboard)/dashboard/criteria/add/page.tsx index f667181..45c72a0 100644 --- a/src/app/(dashboard)/dashboard/criteria/add/page.tsx +++ b/src/app/(dashboard)/dashboard/criteria/add/page.tsx @@ -5,7 +5,7 @@ import { ScrollArea, ScrollBar } from "@/components/ui/scroll-area"; import { Separator } from "@/components/ui/separator"; import AddCriteriaForm from "@/components/criteria-form"; -export default function SettingsDisplayPage() { +export default function Page() { return (
diff --git a/src/app/(dashboard)/dashboard/evaluations/add/page.tsx b/src/app/(dashboard)/dashboard/evaluations/add/page.tsx index fd7a634..1ba2ff3 100644 --- a/src/app/(dashboard)/dashboard/evaluations/add/page.tsx +++ b/src/app/(dashboard)/dashboard/evaluations/add/page.tsx @@ -10,7 +10,7 @@ const breadcrumbItems = [ { title: "Add" }, ]; -export default function SettingsDisplayPage() { +export default function Page() { return (
@@ -25,7 +25,7 @@ export default function SettingsDisplayPage() { - +
diff --git a/src/app/(dashboard)/dashboard/organizations/add/page.tsx b/src/app/(dashboard)/dashboard/organizations/add/page.tsx index 2702fab..3cfa70a 100644 --- a/src/app/(dashboard)/dashboard/organizations/add/page.tsx +++ b/src/app/(dashboard)/dashboard/organizations/add/page.tsx @@ -1,4 +1,4 @@ -"use client" +"use client"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { ScrollArea, ScrollBar } from "@/components/ui/scroll-area"; @@ -12,7 +12,7 @@ const breadcrumbItems = [ { title: "Add" }, ]; -export default function SettingsDisplayPage() { +export default function Page() { return (
diff --git a/src/app/(dashboard)/dashboard/skills/add/page.tsx b/src/app/(dashboard)/dashboard/skills/add/page.tsx index cb8ea7a..4d74d1e 100644 --- a/src/app/(dashboard)/dashboard/skills/add/page.tsx +++ b/src/app/(dashboard)/dashboard/skills/add/page.tsx @@ -1,7 +1,9 @@ +"use client"; + import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { ScrollArea, ScrollBar } from "@/components/ui/scroll-area"; import { Separator } from "@/components/ui/separator"; -import AddSkillForm from "@/components/add-skill-form"; +import SkillForm from "@/components/skill-form"; import Breadcrumb from "@/components/breadcrumb"; const breadcrumbItems = [ @@ -10,7 +12,7 @@ const breadcrumbItems = [ { title: "Add" }, ]; -export default function SettingsDisplayPage() { +export default function Page() { return (
@@ -25,7 +27,11 @@ export default function SettingsDisplayPage() { - + {}} + btn1_content="Create" + btn2_content="Create and add another" + />
diff --git a/src/app/(dashboard)/dashboard/skills/edit/[id]/page.tsx b/src/app/(dashboard)/dashboard/skills/edit/[id]/page.tsx new file mode 100644 index 0000000..41dee58 --- /dev/null +++ b/src/app/(dashboard)/dashboard/skills/edit/[id]/page.tsx @@ -0,0 +1,47 @@ +"use client"; + +import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; +import { ScrollArea, ScrollBar } from "@/components/ui/scroll-area"; +import { Separator } from "@/components/ui/separator"; +import SkillForm from "@/components/skill-form"; +import Breadcrumb from "@/components/breadcrumb"; +import { dummySkills } from "@/constants/data"; +import { Skill } from "@/types/skill"; + +const breadcrumbItems = [ + { title: "Dashboard", link: "/dashboard" }, + { title: "Skills", link: "/dashboard/skills" }, + { title: "Edit" }, +]; + +export default function Page({ params }: { params: { id: string } }) { + const skill = dummySkills.find((skill) => skill.id === +params.id); + + return ( + +
+ +
+ + + + Edit Skill + + + + + + {}} + btn1_content="Save and continue editing" + btn2_content="Save changes" + /> + + +
+ +
+
+ ); +} diff --git a/src/app/(dashboard)/dashboard/users/add/page.tsx b/src/app/(dashboard)/dashboard/users/add/page.tsx index 120c093..e1fb905 100644 --- a/src/app/(dashboard)/dashboard/users/add/page.tsx +++ b/src/app/(dashboard)/dashboard/users/add/page.tsx @@ -12,7 +12,7 @@ const breadcrumbItems = [ { title: "Add" }, ]; -export default function SettingsDisplayPage() { +export default function Page() { return (
diff --git a/src/components/add-skill-form.tsx b/src/components/skill-form.tsx similarity index 79% rename from src/components/add-skill-form.tsx rename to src/components/skill-form.tsx index 9fdf7ea..2ceb751 100644 --- a/src/components/add-skill-form.tsx +++ b/src/components/skill-form.tsx @@ -15,6 +15,7 @@ import { } from "@/components/ui/form"; import { toast } from "@/components/ui/use-toast"; import { Input } from "./ui/input"; +import { Skill } from "@/types/skill"; const displayFormSchema = z.object({ name: z.string().trim().min(1, "Name is required."), @@ -22,15 +23,28 @@ const displayFormSchema = z.object({ type DisplayFormValues = z.infer; -// This can come from your database or API. -const defaultValues: Partial = { - name: "", +// const defaultValues: Partial = { +// name: "", +// }; + +type Props = { + skill?: Skill; + onSubmit: () => void; + btn1_content: string; + btn2_content: string; }; -export default function AddSkillForm() { +export default function SkillForm({ + skill, + onSubmit: onFormSubmit, + btn1_content, + btn2_content, +}: Props) { const form = useForm({ resolver: zodResolver(displayFormSchema), - defaultValues, + defaultValues: { + name: skill?.name || "", + }, }); function onSubmit(data: DisplayFormValues) { @@ -63,10 +77,10 @@ export default function AddSkillForm() {
diff --git a/src/components/skills-table/cell-action.tsx b/src/components/skills-table/cell-action.tsx index 6a7be45..81d860c 100644 --- a/src/components/skills-table/cell-action.tsx +++ b/src/components/skills-table/cell-action.tsx @@ -14,6 +14,7 @@ import { EvaluationStart } from "@/types/evaluation-start"; import { Skill } from "@/types/skill"; import { Edit, GitCommit, MoreHorizontal, Trash } from "lucide-react"; +import Link from "next/link"; import { useRouter } from "next/navigation"; import { useState } from "react"; @@ -49,13 +50,13 @@ export const CellAction: React.FC = ({ data }) => { Actions - - // router.push(`#`) - // } - > - Edit + + + Edit +