Skip to main content

EditEntityPage Page Implementation

Below is the implementation of the EditEntityPage page file that uses the EditEntityForm component. This is a server component that fetches data and renders the client-side form:

// File: app/entities/details/[entityId]/edit/page.tsx
import Loader from '@/components/Loader';
import EditEntityForm from '@/components/entitiesPage/details/EditEntityForm';
import PageHeader from '@/components/ui/page-header';
import { getEntityById } from '@/lib/actions/Entities';
import { getUserId } from '@/lib/actions/User';
import React, { Suspense } from 'react';
import { toast } from 'sonner';

const EditEntityPage = async ({ params }: { params: any }) => {
const entityId = params.entityId;

const { data, error, message, status } = await getEntityById(entityId);
const { id } = await getUserId();

if (error) {
console.error('Error getting entity => ', error);
toast.error(message);
return <div>Error getting entity = {error}</div>;
}

if (data === null || data === undefined) {
console.error('Error getting entity => ', error);
toast.error(message);
}

return (
<Suspense fallback={<Loader />}>
<PageHeader
title="Edit Entity"
backUrl={`/entities/details/${data?.id}`}
/>
{data === null || data === undefined ? (
<div>No entity found = {message}</div>
) : (
<EditEntityForm entityData={data} userId={id || ''} />
)}
</Suspense>
);
};

export default EditEntityPage;