refactor(marketing): Standardize marketing wizard steps with initial data support
- Add support for initial data in all marketing wizard step components - Update step presenters to accept and handle initial data - Modify forwardRef implementations to include initialData prop - Add TypeScript interfaces for step component props - Improve type safety and data handling across marketing wizard steps - Prepare components for edit and create workflows with consistent data management
This commit is contained in:
@@ -1,15 +1,19 @@
|
||||
"use client";
|
||||
import Loading from "@/app/loading";
|
||||
import Breadcrumb from "@/components/Breadcrumbs/Breadcrumb";
|
||||
import { useGetCmsDetails } from "@/hooks/queries/useCmsQueries";
|
||||
import { useGetCmsDetails, useUpdateCms } from "@/hooks/queries/useCmsQueries";
|
||||
import { BreadcrumbItem } from "@/types/shared";
|
||||
import { use } from "react";
|
||||
import MarketingForm from "../../_components/MarketingForm";
|
||||
|
||||
interface IProps {
|
||||
params: Promise<{ id: string }>;
|
||||
}
|
||||
const EditMarketingPage = async ({ params }: IProps) => {
|
||||
|
||||
const EditMarketingPage = ({ params }: IProps) => {
|
||||
const { id } = use(params);
|
||||
const { data, isPending } = useGetCmsDetails(id);
|
||||
const { data, isPending: isLoading } = useGetCmsDetails(id);
|
||||
const { mutate: updateCms, isPending: isUpdating } = useUpdateCms(id);
|
||||
|
||||
const breadcrumbItems: BreadcrumbItem[] = [
|
||||
{
|
||||
href: "/",
|
||||
@@ -24,10 +28,29 @@ const EditMarketingPage = async ({ params }: IProps) => {
|
||||
name: "Edit Marketing",
|
||||
},
|
||||
];
|
||||
if (isPending) return <Loading />;
|
||||
|
||||
const handleSubmit = (formData: any) => {
|
||||
updateCms(formData, {
|
||||
onSuccess: () => {
|
||||
console.log("CMS updated successfully");
|
||||
},
|
||||
onError: (error) => {
|
||||
console.error("Error updating CMS:", error);
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
if (isLoading || !data?.data) return <Loading />;
|
||||
|
||||
return (
|
||||
<>
|
||||
<Breadcrumb items={breadcrumbItems} />
|
||||
</>
|
||||
<MarketingForm
|
||||
breadcrumbItems={breadcrumbItems}
|
||||
title="Edit Marketing page"
|
||||
onSubmit={handleSubmit}
|
||||
isPending={isUpdating}
|
||||
initialData={data.data}
|
||||
/>
|
||||
);
|
||||
};
|
||||
|
||||
export default EditMarketingPage;
|
||||
|
||||
Reference in New Issue
Block a user