diff --git a/src/app/(dashboard)/dashboard/organizations/add/page.tsx b/src/app/(dashboard)/dashboard/organizations/add/page.tsx index 0c81302..2702fab 100644 --- a/src/app/(dashboard)/dashboard/organizations/add/page.tsx +++ b/src/app/(dashboard)/dashboard/organizations/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 AddOrganizationForm from "@/components/add-organization-form"; +import OrganizationForm from "@/components/organization-form"; import Breadcrumb from "@/components/breadcrumb"; const breadcrumbItems = [ @@ -25,7 +27,11 @@ export default function SettingsDisplayPage() { - + {}} + btn1_content="Create" + btn2_content="Create and add another" + /> diff --git a/src/app/(dashboard)/dashboard/organizations/edit/[id]/page.tsx b/src/app/(dashboard)/dashboard/organizations/edit/[id]/page.tsx new file mode 100644 index 0000000..190cfef --- /dev/null +++ b/src/app/(dashboard)/dashboard/organizations/edit/[id]/page.tsx @@ -0,0 +1,46 @@ +"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 OrganizationForm from "@/components/organization-form"; +import Breadcrumb from "@/components/breadcrumb"; +import { dummyOrganizations } from "@/constants/data"; +import { Organization } from "@/types/organization"; + +const breadcrumbItems = [ + { title: "Dashboard", link: "/dashboard" }, + { title: "Organizations", link: "/dashboard/organizations" }, + { title: "Edit" }, +]; + +export default function Page({ params }: { params: { id: string } }) { + + const organization = dummyOrganizations.find((organization) => organization.id === +params.id); + + return ( + +
+ +
+ + + + Edit Organization + + + + + + {}} + 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 d678e58..120c093 100644 --- a/src/app/(dashboard)/dashboard/users/add/page.tsx +++ b/src/app/(dashboard)/dashboard/users/add/page.tsx @@ -1,13 +1,8 @@ -import AddUserForm from "@/components/user-form"; +"use client"; + +import UserForm from "@/components/user-form"; import Breadcrumb from "@/components/breadcrumb"; -import { Button } from "@/components/ui/button"; -import { - Card, - CardContent, - CardFooter, - CardHeader, - CardTitle, -} from "@/components/ui/card"; +import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { ScrollArea, ScrollBar } from "@/components/ui/scroll-area"; import { Separator } from "@/components/ui/separator"; @@ -32,7 +27,11 @@ export default function SettingsDisplayPage() { - + {}} + btn1_content="Create" + btn2_content="Create and add another" + /> diff --git a/src/app/(dashboard)/dashboard/users/edit/[id]/page.tsx b/src/app/(dashboard)/dashboard/users/edit/[id]/page.tsx index e19c674..5445ad6 100644 --- a/src/app/(dashboard)/dashboard/users/edit/[id]/page.tsx +++ b/src/app/(dashboard)/dashboard/users/edit/[id]/page.tsx @@ -1,3 +1,5 @@ +"use client"; + import UserForm from "@/components/user-form"; import Breadcrumb from "@/components/breadcrumb"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; @@ -13,11 +15,9 @@ const breadcrumbItems = [ ]; export default function Page({ params }: { params: { id: string } }) { - console.log(params); const user = dummyUsers.find((user) => user.id === +params.id); - console.log(user); return ( @@ -33,7 +33,12 @@ export default function Page({ params }: { params: { id: string } }) { - + {}} + btn1_content="Save and continue editing" + btn2_content="Save changes" + /> diff --git a/src/components/add-organization-form.tsx b/src/components/organization-form.tsx similarity index 80% rename from src/components/add-organization-form.tsx rename to src/components/organization-form.tsx index 0f683b6..b7bae07 100644 --- a/src/components/add-organization-form.tsx +++ b/src/components/organization-form.tsx @@ -15,6 +15,7 @@ import { } from "@/components/ui/form"; import { toast } from "@/components/ui/use-toast"; import { Input } from "./ui/input"; +import { Organization } from "@/types/organization"; const displayFormSchema = z.object({ name: z.string().trim().min(1, "Name is required."), @@ -27,10 +28,23 @@ const defaultValues: Partial = { name: "", }; -export default function AddOrganizationForm() { +type Props = { + organization?: Organization; + onSubmit: () => void; + btn1_content: string; + btn2_content: string; +}; +export default function OrganizationForm({ + organization, + onSubmit: onFormSubmit, + btn1_content, + btn2_content, +}: Props) { const form = useForm({ resolver: zodResolver(displayFormSchema), - defaultValues, + defaultValues: { + name: organization?.name || "", + }, }); function onSubmit(data: DisplayFormValues) { @@ -42,6 +56,8 @@ export default function AddOrganizationForm() { ), }); + + onFormSubmit(); } return ( @@ -63,10 +79,10 @@ export default function AddOrganizationForm() {
diff --git a/src/components/organizations-table/cell-action.tsx b/src/components/organizations-table/cell-action.tsx index cf57a47..b1f94b9 100644 --- a/src/components/organizations-table/cell-action.tsx +++ b/src/components/organizations-table/cell-action.tsx @@ -13,6 +13,7 @@ import { Organization } from "@/types/organization"; import { User } from "@/types/user"; import { BookCheck, Edit, MoreHorizontal, Trash } from "lucide-react"; +import Link from "next/link"; import { useRouter } from "next/navigation"; import { useState } from "react"; @@ -48,13 +49,13 @@ export const CellAction: React.FC = ({ data }) => { Actions - - // router.push(`#`) - // } - > - Update + + + Edit + ; -export default function UserForm({ user }: { user?: User }) { +type Props = { + user?: User; + onSubmit: () => void; + btn1_content: string; + btn2_content: string; +}; + +export default function UserForm({ + user, + onSubmit: onFormSubmit, + btn1_content, + btn2_content, +}: Props) { const form = useForm({ resolver: zodResolver(displayFormSchema), defaultValues: { @@ -89,6 +101,8 @@ export default function UserForm({ user }: { user?: User }) { ), }); + + onFormSubmit(); } return ( @@ -209,10 +223,10 @@ export default function UserForm({ user }: { user?: User }) { />
diff --git a/src/components/users-table/cell-action.tsx b/src/components/users-table/cell-action.tsx index a6d888a..ba576b1 100644 --- a/src/components/users-table/cell-action.tsx +++ b/src/components/users-table/cell-action.tsx @@ -53,10 +53,10 @@ export const CellAction: React.FC = ({ data }) => { Approve User
- + Edit