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 { ...@@ -13,18 +13,28 @@ import {
import ReactQuillEditor from "@/components/molecules/ReactQuill"; import ReactQuillEditor from "@/components/molecules/ReactQuill";
import { pageInitialData } from "@/types/page"; // should match your type import { pageInitialData } from "@/types/page"; // should match your type
import { CloseCircle } from "@wandersonalwes/iconsax-react"; 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 { showToast, ToastVariant } from "@/slice/toastSlice";
import { useAppDispatch } from "@/hooks/hook"; import { useAppDispatch } from "@/hooks/hook";
import { useRouter } from "next/navigation"; import { useRouter } from "next/navigation";
export default function AddPageForm() { export default function AddPageForm({ id }: { id?: string }) {
const [createPage, { isLoading: creatingPage } const [createPage, { isLoading: creatingPage }
] = useCreatePageMutation(); ] = useCreatePageMutation();
const { data, isLoading } = useGetSinlgePageByIdQuery({ id }, {
skip: !id
})
const [updatedPage, { isLoading: updating }] = useUpdatePageByIdMutation();
const dispatch = useAppDispatch(); const dispatch = useAppDispatch();
const router = useRouter(); const router = useRouter();
const formik = useFormik({ 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, enableReinitialize: true,
validationSchema: Yup.object({ validationSchema: Yup.object({
name: Yup.string().required("Page title is required"), name: Yup.string().required("Page title is required"),
......
...@@ -23,6 +23,13 @@ export const pageApi = createApi({ ...@@ -23,6 +23,13 @@ export const pageApi = createApi({
}), }),
providesTags: ['pages'] 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 }>({ updatePageById: builder.mutation<GlobalResponse, { id: string, body: FormData }>({
query: ({ id, body }) => ({ query: ({ id, body }) => ({
url: `/api/admin/page/update/${id}`, url: `/api/admin/page/update/${id}`,
...@@ -45,5 +52,6 @@ export const { ...@@ -45,5 +52,6 @@ export const {
useCreatePageMutation, useCreatePageMutation,
useGetAllPageQuery, useGetAllPageQuery,
useUpdatePageByIdMutation, useUpdatePageByIdMutation,
useDeletePageByIdMutation useDeletePageByIdMutation,
useGetSinlgePageByIdQuery
} = pageApi; } = 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