A really simple React component/library to allow website visitors to comment and interact with others using their Telegram's account.
References:
The main motivation for this component is to a provide a lightweight alternative to Discord (and similar services) to handle comments in websites.
See it in action!:
- Light and dark themes
- Customization for UI colors and icons
- Allow to reply to comments
- Like or dislike options
- Customize the number of comments to show
- Ability to add other users as Administrators or Moderators
- Ability to delete comments and ban users
- Suscribe to comments (using your Telegram account and @discussbot)
Created by Telegram 💙
-
Sign-up to comments.app, add your site and get a valid Site ID for your domain.
-
Add the component package to your project with
yarn add react-telegram-comments
ornpm install react-telegram-comments
. -
Import the component in your pages or components:
import { TelegramComments } from "react-telegram-comments";
-
Add
TelegramComments
to your component or page:const Comments = () => <TelegramComments websiteKey={websiteKey} />; export default Comments;
Important: Have in mind that for the moment the widget doesn't work with local domains. You'll need to publish your website to see it in action.
commentsNumber
{number} optional The number of comments to display (5
)containerClassName
: {string} optional The components main container class ("telegram-comments"
)customColor
{string} optional Highlight color, hex value without # (null
)customHeight
{number} optional Custom widget height in pixels (null
)onLoad
: {} optional Callback function to be executed when the external script is loadedpageId
{string} optional Unique identifier of the page. Page URL by default (null
)showColorfulNames
{boolean} optional Use different color for usernames (false
)showDislikes
{boolean} optional Add the dislike option for comments (true
)showIconOutlines
{boolean} optional Display outlined icons (false
)useDarkMode
{boolean} optional Use dark theme (false
)websiteKey
: {string} required The Site IDwrapperClassName
: {string} optional The inner wrapper class, in case you need another one (E.g."telegram-comments__wrapper"
)
<TelegramComments
commentsNumber={3}
containerClassName="awesome-comments"
customColor="663399"
customHeight="450"
isDark
onLoad={() => console.log("Comments loaded!")}
pageId="about-page"
showColorfulNames
showDislikes
showIconOutlines
websiteKey={process.env.COMMENTS_APP_KEY}
wrapperClassName="awesome-comments__wrapper"
/>
- Rewrite component using modern TypeScript and React.
- New, simplified build system using
tsc
only. - Automated builds and NPM publish using github actions.
- Add unitary tests (finally!).
- Enhanced documentation and demo page added.
isDark
prop renamed touseDarkMode
(only breaking change from v1)- Add
onLoad
callback prop
Proudly made in 🇦🇷