Commit 4d2d7d0f by Arjun Jhukal

updated the page edit feature

parent 5079ece0
import AddPageForm from '@/components/pages/dashboard/adminDashboard/pages/add-page'
import React from 'react'
export default async function EditGeneralPages(props: { params: Promise<{ id: string }> }) {
const { id } = await props.params;
return (
<section className="edit__page__root">
<AddPageForm id={id} />
</section>
)
}
......@@ -13,18 +13,28 @@ import {
import ReactQuillEditor from "@/components/molecules/ReactQuill";
import { pageInitialData } from "@/types/page"; // should match your type
import { CloseCircle } from "@wandersonalwes/iconsax-react";
import { useCreatePageMutation } from "@/services/pageApi";
import { useCreatePageMutation, useGetSinlgePageByIdQuery, useUpdatePageByIdMutation } from "@/services/pageApi";
import { showToast, ToastVariant } from "@/slice/toastSlice";
import { useAppDispatch } from "@/hooks/hook";
import { useRouter } from "next/navigation";
export default function AddPageForm() {
export default function AddPageForm({ id }: { id?: string }) {
const [createPage, { isLoading: creatingPage }
] = useCreatePageMutation();
const { data, isLoading } = useGetSinlgePageByIdQuery({ id }, {
skip: !id
})
const [updatedPage, { isLoading: updating }] = useUpdatePageByIdMutation();
const dispatch = useAppDispatch();
const router = useRouter();
const formik = useFormik({
initialValues: pageInitialData,
initialValues: id ? {
name: data?.data?.name || "",
slug: data?.data?.slug || "",
description: data?.data?.description || "",
content: data?.data?.content || []
} : pageInitialData,
enableReinitialize: true,
validationSchema: Yup.object({
name: Yup.string().required("Page title is required"),
......@@ -54,7 +64,7 @@ export default function AddPageForm() {
formData.append(`content[${index}][description]`, item.description);
});
try {
const response = await createPage(formData).unwrap();
......
......@@ -23,6 +23,13 @@ export const pageApi = createApi({
}),
providesTags: ['pages']
}),
getSinlgePageById: builder.query<PageResponseProps, { id: string | undefined }>({
query: ({ id }) => ({
url: `/api/admin/page/${id}`,
method: "GET",
}),
providesTags: ['pages']
}),
updatePageById: builder.mutation<GlobalResponse, { id: string, body: FormData }>({
query: ({ id, body }) => ({
url: `/api/admin/page/update/${id}`,
......@@ -45,5 +52,6 @@ export const {
useCreatePageMutation,
useGetAllPageQuery,
useUpdatePageByIdMutation,
useDeletePageByIdMutation
useDeletePageByIdMutation,
useGetSinlgePageByIdQuery
} = pageApi;
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment