🚨 Shai-Hulud Strikes Again:834 Packages Compromised.Technical Analysis
Socket
Book a DemoInstallSign in
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.

latest
Source
npmnpm
Version
0.0.5
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

react

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