Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
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
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.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.