New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@commont/react

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@commont/react

Effortlessly add a comment section to your website, and start the discussion on your content.

  • 0.0.5
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

@commont/react

npm

Getting set up

To use Commont, you need to create a new account via our signup page. You can sign up using an email and password or by using GitHub or Google. Once you have an account, you can access the Commont dashboard. Initially, you'll see one default project that you can configure as you need.

👀 Read the docs for more information.

Installing @commont/react

yarn add @commont/react commont # npm install @commont/react

The package exports a useComments hook that you can use to fetch the comments for your project.

Using useComments hook

useComments fetches comments from the backend on mount and whenever take or skip change.

Parameters

useComments takes an object with the following parameters:

  • projectId — Your project ID.
  • topic — Comments will be fetched for a particular topic, e.g. my-post-about-cats.
  • take — Number of comments to fetch.
  • skip — Number of comments to skip (offset).

Example usage in a React component

import { useComments, CommentStatus } from '@commont/react';

const Post = ({ projectId }) => {
  const { comments, count, loading, refetch, error } = useComments({
    projectId,
    topic: 'post-id'
    take: 10, skip: 0
  });

  return (
    <section>
      <h3>{count} comments</h3>
      {loading ? (
        <p>Loading...</p>
      ) : (
        <div>
          {comments.map(({ author, content, createdAt, status }) => (
            <article key={createdAt} className="bg-gray-100 rounded my-6 p-4">
              <div className="font-bold mb-2">
                {author} ・ {new Date(createdAt).toLocaleDateString()}
              </div>
              <p className="text-gray-700">{content}</p>
            </article>
          ))}
        </div>
      )}
    </section>
  )
}

Examples

API Reference

UseCommentsComment

interface UseCommentsComment {
  topic: string;
  author: string;
  content: string;
  createdAt: string;
  status?: UseCommentsStatus;
  details?: Record<string, any>;
}

UseCommentsStatus

When a user adds a new comment, it will be in one of four states:

  • sending — add comment request is still pending.
  • added — the comment was successfully added and is visible for other people.
  • delivered-awaiting-approval — the comment was successfully added, but it's not yet visible for other people.
  • failed — adding a comment was unsuccessful.
type UseCommentsStatus =
  | 'sending'
  | 'added'
  | 'delivered-awaiting-approval'
  | 'failed';

UseCommentsParameters

interface UseCommentsParameters {
  projectId: string;
  topic: string;
  take?: number;
  skip?: number;
}

UseCommentsResult

interface UseComentsResult {
  comments: UseCommentsComment[];
  addComment: ({
    content,
    author,
  }: Pick<UseCommentsComment, 'content' | 'author' | 'details'>) => void;
  refetch: () => void;
  count: number;
  loading: boolean;
  error: string | null;
}

Keywords

FAQs

Package last updated on 22 Sep 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc