Skip to content

Commit

Permalink
refactor communityForm and reuse for add/edit community page
Browse files Browse the repository at this point in the history
  • Loading branch information
shadrach-tayo committed Oct 5, 2024
1 parent 1916a9b commit 2d71dec
Show file tree
Hide file tree
Showing 4 changed files with 472 additions and 391 deletions.
34 changes: 28 additions & 6 deletions src/app/(auth)/community/[id]/edit/page.tsx
Original file line number Diff line number Diff line change
@@ -1,21 +1,43 @@
"use client";

import {
useSuspenseQuery,
} from "@tanstack/react-query";
import { useSuspenseQuery } from "@tanstack/react-query";
import { listCommunitiesQuery } from "@/lib/api";
import { useFormState, useFormStatus } from "react-dom";
import { updateCommunity } from "@/app/actions";
import CommunityForm from "@/components/organisms/forms/community-form";

const defaultState: ReturnType<typeof updateCommunity> = Promise.resolve({
ok: false,
});

export default function CommunityDetailsPage({
params,
}: {
params: { id: string };
}) {
console.log("details page", params.id);
const { data, isLoading } = useSuspenseQuery(listCommunitiesQuery);
const community = data?.data?.find((com) => com.id === parseInt(params.id));

console.log('details', { community, id: params.id })
const [state, formAction] = useFormState<ReturnType<typeof updateCommunity>>(
updateCommunity,
defaultState
);

const { pending } = useFormStatus();

console.log("details", { community, id: params.id });
if (isLoading || !community) {
return <div>Loading...</div>;
}
return (
<p>Edit: {community?.name}</p>
<CommunityForm
formAction={(formdata) => {
formdata.append("communityId", community.id.toString());
formAction(formdata);
}}
state={state}
defaultValues={community}
pending={pending}
/>
);
}
Loading

0 comments on commit 2d71dec

Please sign in to comment.