
Security News
ECMAScript 2025 Finalized with Iterator Helpers, Set Methods, RegExp.escape, and More
ECMAScript 2025 introduces Iterator Helpers, Set methods, JSON modules, and more in its latest spec update approved by Ecma in June 2025.
react-native-giphy-ui
Advanced tools
Cross Platform React Native Wrapper around the Giphy UI SDK for both iOS and Android
Cross Platform wrapper around the Giphy SDK for both iOS and Android, giving you access to Giphy large GIF library. Works well with react-native-gifted-chat and Typescript.
You can view the source code for the example application here
Install the library using either yarn or npm like so:
$ npm install --save react-native-giphy-ui
$ yarn add react-native-giphy-ui
If you're using React Native versions > 60.0, it's relatively straightforward.
cd ios && pod install
For versions below 0.60.0, use rnpm links
react-native link @jesster2k10/react-native-range-slider
This library was written in Swift, so in-order for you app to compile, you need to have at least on .swift file in your source code a bridging header to avoid a runtime error like so:
All you have to do is:
For versions below 0.60.0, follow the linking instructions above.
You must add the following to your application build.gradle
repositories {
maven {
url "http://giphy.bintray.com/giphy-sdk"
}
}
Your minSdkVersion
must be >= 19.
This library offers an imperative api wrapper around the native Giphy SDK
import { GiphyUI } from 'react-native-giphy-ui';
// Configure the client with the api key
GiphyUI.configure('GIPHY_API_KEY');
// Present the ui
GiphyUI.present(
{
theme: 'dark',
layout: 'carousel',
rating: 'ratedPG13',
showConfirmationScreen: false,
mediaTypes: ['gfs'],
},
selectedMedia => {
console.log('Picked media', selectedMedia);
}
);
present(config: GiphyPresentConfig, onSelect: (media: GiphyGif) => void, onDismiss?: Callback)
Shows the GiphyViewController
with a customized configuration, and an on select/dismiss callback.
GiphyUI.present(
{
theme: 'light',
},
media => {
console.log(media);
}
);
GiphyPresentConfig
Name | Type | Default | Description |
---|---|---|---|
theme | enum('light', 'dark') | light | The theme of the gif picker |
layout | enum('carousel', 'waterfall') | waterfall | The layout of the gif picker |
rating | enum('nsfw', 'ratedPG13', 'ratedPG', 'unrated', 'ratedR', 'ratedY, 'ratedG') | ratedPG | set a specific content rating for the search results. |
trayHeightMultiplier | number | 0.7 | height for the tray's "snap point" as a ratio of the GiphyViewController's height. |
showConfirmationScreen | boolean | false | show a secondary confirmation screen when the user taps a GIF. |
shouldLocalizeSearch | boolean | false | localize the search results based on phone settings |
mediaTypes | enum('gifs', 'stickers', 'text', 'emoji')[] | ['gifs'] | Set the content type(s) you'd like to show |
GiphyGif
Please view the types file
Callback
type Callback = (() => void) | null;
Configures the api client with a given api key.
setSetting(setting: 'memoryOnly' | 'diskOnly')
This controls how the GIFs are cached on the device. If you only want to store the GIF caches in memory you can:
GiphyCache.setSetting('memoryOnly');
Similarly, if you want to store the cache on the disk; you can:
GiphyCache.setSetting('diskOnly');
downloadAssetUrl(url: string): Promise<Asset>
Returns the raw image data for a cached image.
const asset = await GiphyCache.downloadAssetUrl(url);
console.log(asset.data); // base 64 encoded data
Asset
type Asset = {
width: number;
height: number;
data: string; // base 64 image
};
setDiskCacheByteLimit(limit: number)
The default disk cache limit is 300mb, if you want to increase it, call on this method like so:
const oneGB = 1000 * 1000 * 1000;
GiphyCache.setDiskCacheByteLimit(oneGB);
This API has not been fully implemented yet.
A wrapper around GPHMediaView
to display a Gif Media
Note: you can use a regular React Native Image to display the gif
import {GiphyMediaView} from 'react-native-giphy-ui'
const App = () => {
//...
const media = //
return (
<GiphyMediaView media={media} />
)
}
Please visit the CONTRIBUTING.md file.
MIT
FAQs
Cross Platform React Native Wrapper around the Giphy UI SDK for both iOS and Android
The npm package react-native-giphy-ui receives a total of 7 weekly downloads. As such, react-native-giphy-ui popularity was classified as not popular.
We found that react-native-giphy-ui demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
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.
Security News
ECMAScript 2025 introduces Iterator Helpers, Set methods, JSON modules, and more in its latest spec update approved by Ecma in June 2025.
Security News
A new Node.js homepage button linking to paid support for EOL versions has sparked a heated discussion among contributors and the wider community.
Research
North Korean threat actors linked to the Contagious Interview campaign return with 35 new malicious npm packages using a stealthy multi-stage malware loader.