milesj / interweave

🌀 React library to safely render HTML, filter attributes, autowrap text with matchers, render emoji characters, and much more.
https://interweave.dev
MIT License
1.1k stars 38 forks source link

Question only: Is this repo suitable for use in production? Also GIFs #224

Open gwhizoftv opened 2 years ago

gwhizoftv commented 2 years ago

Hi All,

We need a supplement to add emojis and GIFs to our React web chat. We are looking at interweave-emoji-picker. Can we include GIFs somehow? Will this repo be maintained any longer ? Many thanks.

milesj commented 2 years ago

@gwhizoftv

Yeah this can be used in production. We use it in our products at work.

And by GIFs, do you mean just random images that have nothing to do with emojis (I'm assuming like Discords menu)? If so, then no, the emoji picker only supports official emojis in the unicode spec.

gwhizoftv commented 2 years ago

@milesj thank you. We do need something like the GIF menu option of discord, along with the emojis. Any suggestions on where to find that additional functionality?

milesj commented 2 years ago

@gwhizoftv I'm not aware of one.

It sounds like something custom that will need to be built, since its very unique to your product. With that being said, if you did build it custom, you could still use interweave and emojibase for the emoji part:

The emoji picker just pieces those 2 together: https://github.com/milesj/interweave/tree/master/packages/emoji-picker/src

gwhizoftv commented 2 years ago

Thank you @milesj . I noticed that Giphy has an SDK, so maybe it would make a companion to your emojis.

gwhizoftv commented 2 years ago

Miles,

Thank you for responding so quickly and thoroughly!

We plan to use Interweave for chat message processing, emoji-mart and giphy API for emojis and GIFs. For our first step with Interweave, we are thinking to use:

1.

For Interweave we want to wrap our text message in Interweave before posting it to the chat channel. Interweave will handle some things automatically: 1.

  convert URL’s to clickable links. Currently our chat doesn’t create
  clickables. https://interweave.dev/docs/exts/autolink#urls
  2.

  Convert hashtags to clickable. Let’s use Twitter only
  https://interweave.dev/docs/exts/autolink#urls
  3.

  Escape HTML in case people try to put HTML into the message
  2.

Create a matcher component that takes our dictionary and replaces with ‘****' if matched. https://interweave.dev/docs/matchers#creating-a-matcher For testing, let’s just use a matcher that can match some basic curse words in english.

In your docs you mention a "factory" matcher. Do you know of any Interweave matchers and replaceWith() that already handle some language filtering like the above?

If you see anything wrong or that I misunderstood something, please let me know!

Once we are done I'm happy to make a pull request if that would be useful with our changes/additions. Also to make a donation if you have a patreon, etc.

Many thanks 🙏 Michael

On Mon, Apr 11, 2022 at 5:09 PM Miles Johnson @.***> wrote:

@gwhizoftv https://github.com/gwhizoftv I'm not aware of one.

It sounds like something custom that will need to be built, since its very unique to your product. With that being said, if you did build it custom, you could still use interweave and emojibase for the emoji part:

The emoji picker just pieces those 2 together: https://github.com/milesj/interweave/tree/master/packages/emoji-picker/src

— Reply to this email directly, view it on GitHub https://github.com/milesj/interweave/issues/224#issuecomment-1095718472, or unsubscribe https://github.com/notifications/unsubscribe-auth/AWOIRPQ35O5L37VLY4JMHGLVES5MVANCNFSM5TEXGBNA . You are receiving this because you were mentioned.Message ID: @.***>

milesj commented 2 years ago

I'm not aware of any censoring matchers, but sounds like a good idea.