Skip to content

Commit

Permalink
feat: client and server (streaming) examples
Browse files Browse the repository at this point in the history
  • Loading branch information
nicholasio committed Jul 31, 2024
1 parent f5a7985 commit eba0192
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 5 deletions.
37 changes: 33 additions & 4 deletions projects/wp-nextjs-app/src/app/(single)/[...path]/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import {
import { Metadata } from 'next';
import { removeSourceUrl } from '@headstartwp/core';
import dynamic from 'next/dynamic';
import { FC, Suspense } from 'react';
import Blocks from '../../../components/Blocks';

const ClientRelatedPosts = dynamic(() =>
Expand Down Expand Up @@ -52,6 +53,26 @@ export async function generateMetadata({ params }: HeadstartWPRoute): Promise<Me
return metatada;
}

const ServerRelatedPosts: FC<{ post_id: number; category: string }> = async ({
post_id,
category,
}) => {
const { data } = await queryPosts({
params: { postType: 'post', per_page: 3, category, exclude: [post_id] },
});

return (
<div>
<h2>Related Posts (Streamed from Server)</h2>
<ul>
{data.posts.map((post) => (
<li key={post.id}>{post.title.rendered}</li>
))}
</ul>
</div>
);
};

const Single = async ({ params }: HeadstartWPRoute) => {
const { data, seo, config } = await query({ params });

Expand All @@ -66,10 +87,18 @@ const Single = async ({ params }: HeadstartWPRoute) => {
{seo.schema && <JSONLD schema={seo.schema} />}

{data.post.terms.category && (
<ClientRelatedPosts
post_id={data.post.id}
category={data.post.terms.category[0].slug}
/>
<>
<ClientRelatedPosts
post_id={data.post.id}
category={data.post.terms.category[0].slug}
/>
<Suspense fallback="Loading (streaming)">
<ServerRelatedPosts
post_id={data.post.id}
category={data.post.terms.category[0].slug}
/>
</Suspense>
</>
)}
</article>
);
Expand Down
2 changes: 1 addition & 1 deletion projects/wp-nextjs-app/src/components/RelatedPosts.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ type Props = {
};

export const RelatedPosts: React.FC<Props> = ({ category, post_id }) => {
const { data, loading } = useFetchPosts({ per_page: 3, category, exclude: post_id });
const { data, loading } = useFetchPosts({ per_page: 3, category, exclude: [post_id] });

if (loading) {
return <div>Loading...</div>;
Expand Down

0 comments on commit eba0192

Please sign in to comment.