All Projects → joinspontaneous → react-native-giphy

joinspontaneous / react-native-giphy

Licence: other
Integrate GIPHY into your React Native project (works with react-native-gifted-chat)

Programming Languages

javascript
184084 projects - #8 most used programming language
objective c
16641 projects - #2 most used programming language
python
139335 projects - #7 most used programming language
java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to react-native-giphy

Webapp
Tinode web chat using React
Stars: ✭ 156 (+524%)
Mutual labels:  chat, messenger
gephi twitter media downloader
A small script designed to take either a .csv of Tweet ids, or the export from Gephi's TwitterStreamingImporter Plugin and download related Tweet media.
Stars: ✭ 41 (+64%)
Mutual labels:  gif, animated
React Messenger
Chat UX components built with React, inspired by Facebook Messenger
Stars: ✭ 167 (+568%)
Mutual labels:  chat, messenger
Xabber Android
Open-source XMPP client for Android
Stars: ✭ 1,773 (+6992%)
Mutual labels:  chat, messenger
giphygram
🔎 Experimental React application for searching GIF images on GIPHY
Stars: ✭ 23 (-8%)
Mutual labels:  giphy, gif
Sum
SUM - Secure Ultimate Messenger
Stars: ✭ 154 (+516%)
Mutual labels:  chat, messenger
Chatlayout
ChatLayout is an alternative solution to MessageKit. It uses custom UICollectionViewLayout to provide you full control over the presentation as well as all the tools available in UICollectionView. It supports dynamic cells and supplementary view sizes.
Stars: ✭ 184 (+636%)
Mutual labels:  chat, messenger
Im service
golang im server
Stars: ✭ 1,694 (+6676%)
Mutual labels:  chat, messenger
gifbar
🦄 Find Awesome Gif's right in your Menu Bar
Stars: ✭ 37 (+48%)
Mutual labels:  giphy, gif
GiphyImageResultsPreview
Library for GIF results, preview, play, share everything at one place!
Stars: ✭ 28 (+12%)
Mutual labels:  giphy, gif
Chat Ui Kit React
Build your own chat UI with React components in few minutes. Chat UI Kit from chatscope is an open source UI toolkit for developing web chat applications.
Stars: ✭ 131 (+424%)
Mutual labels:  chat, messenger
gifterm
View animated .GIF files in a text console. Linux/Mac/Windows
Stars: ✭ 14 (-44%)
Mutual labels:  gif, animated
Demo Twilio Backend Nodejs
A sample backend that demonstrates how to generate a Virgil JWT and Twilio token used for authentication with the Virgil and Twilio services
Stars: ✭ 128 (+412%)
Mutual labels:  chat, messenger
Igdm
Desktop application for Instagram DMs
Stars: ✭ 1,880 (+7420%)
Mutual labels:  chat, messenger
Blabber.im
blabber.im basiert auf Conversations und ist ein Open Source XMPP/Jabber Messenger für Android 4.1+
Stars: ✭ 124 (+396%)
Mutual labels:  chat, messenger
Qiscus Sdk Android
Qiscus provide everything you need to power up your app with chats. And it's now made simple.
Stars: ✭ 175 (+600%)
Mutual labels:  chat, messenger
Dino
Modern XMPP ("Jabber") Chat Client using GTK+/Vala
Stars: ✭ 1,637 (+6448%)
Mutual labels:  chat, messenger
Ios
Tinodios: Tinode Messaging Client for iOS
Stars: ✭ 119 (+376%)
Mutual labels:  chat, messenger
UnityGiphy
Library for using the GiphyAPI in Unity to get and play random Gifs as MP4s
Stars: ✭ 35 (+40%)
Mutual labels:  giphy, gif
SwiftyGiphy
A UI and API layer for Giphy discovery and integration.
Stars: ✭ 90 (+260%)
Mutual labels:  giphy, gif

React Native Giphy

This component is still in development and has a little more work to be done before it is production ready. Feel free to play around with it. Should be ready soon.

Features

  • Requires react-native .43 or higher.

  • Uses the Giphy Api for search.

  • Infinitely scrolling lists of Giphy's.

  • Searches as you type.

  • Easy integration with react native gifted chat.

  • Uses react natives new flatlist component under the hood for awesome performance and non-buggy rendering. Also, returns small amounts of data at a time for fast GIF loading and performant scrolling even over slow connections.

  • Uses react-native-image-progress for nice, progress indicators while images are returned.

Demo and Example

Run example app by cloning this repo

git clone https://github.com/joinspontaneous/react-native-giphy
yarn install
react-native run-ios

Installation

Requires React-Native 42 or higher.

yarn add react-native-giphy

then import the componenent in your app

import GifSearch from 'react-native-giphy';

Props

Prop Type Description Default
inputText String current text state of whatever input you are using Trending Gifs
handleGifSelect Func function that takes the url of the selected Gif as a param () =>
ApiKey String Your API key GiphyPublic API key

react-native-giphy has two required props.

react-native-giphy was meant to be used with a controlled input and takes the state of your input as a prop called "inputText." React-native-giphy also requires a function to handle a gif press. The press will return the url of the desired gif.

Future updates will allow you specify the size and quality of the returned gif. For now, the component only passes the url of a low quality 200x200 px downsampled gif for which is a good mix of quality and size and perfomance in mobile chat applications but can be low on the quality side for some GIFs. Expect to see this added as a customizable prop soon.

 <Giphy
  inputText={ this.state.text }
  handleGifSelect={ (url) => url }
  />
  <TextInput
    onChangeText={ (text) => { this.setState({ text }) } }
    value={ this.state.text }
  />

As shown in the example App, it's best to avoid the keyboard. The component will render a fixed 100x100 row of square images. If no text is on the input, the return gifs will be only 25 trending GIF images from Giphy. Any search will render a list that scrolls infinitely (5000 GIFs I believe is the limit of the API). I doubt any user will scroll through all 5000.

TODO

[] add props for styling [] add props for user production api key []

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].