Next.js Integration
These instructions assume you've already created a JamComments account as well as a "site" within that account. If you haven't, learn more about that process on the Getting Started page.
Prerequisites
In order to use this plugin, you'll need a JamComments account, where you'll also need to have created a site and generated an API key.
Installation
npm install @jam-comments/next
Usage
In your getStaticProps
or getServerSideProps
hook, retrieve the comments for a given post by using the fetchMarkup
method, and then passing your API key, domain, and comment data to your rendered page, which should then be passed to the <JamComments />
component.
// [slug].js
import { JamComments } from "@jam-comments/next";
export default function Post({ content, commentData }) {
return (
<article>
<div dangerouslySetInnerHTML={{__html: content}}></div>
<JamComments markup={commentData} />
</article>
)
}
export async function getStaticProps({ params }) {
const content = await getContentFromSomewhere();
const { fetchMarkup } = require("@jam-comments/next");
// Retrieve all comments already made on this post.
const commentData = await fetchMarkup({
domain: process.env.JAM_COMMENTS_DOMAIN,
apiKey: process.env.JAM_COMMENTS_API_KEY,
path: `/posts/${params.slug}`
});
// Pass domain, API key, and comments to `props` for use client-side.
return {
props: {
commentData,
content
},
};
}
Contributions
The source for this plugin is open to contributions. If you have a bug fix or idea for improvement, leave a pull request or issue in the GitHub repository.