npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

gif-picker-react

v1.4.0

Published

Tenor Gif Picker for React

Downloads

12,033

Readme

Gif Picker React | Live Demo

npm GitHub Workflow Status npm bundle size downloads

demo

An Tenor GIF picker component for React applications that runs on Tenor API V2. This picker fits styling of emoji-picker-react and can be used next to it.

What to know before using

  • In order to access Tenor API you are required to provide API key. This is a free and simple process that takes less than 60 seconds.
  • Tenor requires attribution from products that use their API. This library comply with that rule by adding Search Tenor placeholder to the search bar.

Installation

npm install gif-picker-react

Obtaining Tenor API v2 key

In order to use GifPicker element you are required to provide Tenor API key via tenorApiKey prop. To obtain this key please follow this simple guide:

  1. Login in to Google Cloud Console
  2. Create a new project
  3. In Google Cloud Marketplace navigate to Tenor API
  4. Click on Enable
  5. In navigation menu go to APIs and services tab and select Credentials
  6. Click + create credentials and create API key, copy generated API key
  7. Pass this key as prop to tenorApiKey

Usage

import GifPicker from 'gif-picker-react';

function App() {
  return (
    <div>
      <GifPicker tenorApiKey={"YOUR_API_KEY"} />
    </div>
  );
}

Props

The following props are accepted by the picker:

| Prop | Type | Default | Description | | ---- | ---- | ------- | ----------- | | tenorApiKey | string | Required | Tenor v2 API key, obtained from Google Cloud Console | | onGifClick | function | | Callback function that is called when an gif is clicked. The function receives the TenorImage object as a parameter. | | theme | Theme | Theme.LIGHT | Controls the theme of the picker. If you are using Typescript you can use Theme enum. Possible values are light, dark and auto. | autoFocusSearch | boolean | true | Controls the auto focus of the search input. | | contentFilter | ContentFilter | ContentFilter.OFF | Controls the Tenor Content filtering options. If you are using Typescript you can use ContentFilter enum. Possible values are high, medium, low, off | | clientKey | string | gif-picker-react | Name of your application. Used to differentiate multiple applications using same API key. | | country | string | US | Specify the country of origin for the request. To do so, provide its two-letter ISO 3166-1 country code. | | locale | string (xx_YY) | en_US | Specify the default language to interpret the search string. xx is the language's ISO 639-1 language code, while the optional _YY value is the two-letter ISO 3166-1 country code. | width | number / string | 350 | Controls the width of the picker. You can provide a number that will be treated as pixel size, or your any accepted css width as string. | height | number / string | 450 | Controls the height of the picker. You can provide a number that will be treated as pixel size, or your any accepted css width as string. | categoryHeight | number / string | 100 | Controls the height of the home page reaction category. You can provide a number that will be treated as pixel size, or your any accepted css width as string. | initialSearchTerm | string | | Sets the initial search term when the picker is opened.

TenorImage

This object is provided as an argument to callback specified in onGifClick:

| Property | Type | Description | | ------------- | ---------- | ----------- | | id | string | Tenor result identifier | | tenorUrl | string | The full URL to view the post on tenor.com | | shortTenorUrl | string | Short URL to view the post on tenor.com | | description | string | Textual description of the content. You can use this do populate image object alt attribute | | createdAt | Date | Date object that represents when this post was created. | | tags | string[] | Array of tags for the post | | url | string | Direct URL to the image source | | height | number | Height of the image in pixels | | width | number | Width of the image in pixels | | preview | TenorImagePreview | Gif preview object with dimensions scaled down |

TenorImagePreview

This object is used for displaying the preview image gifs in the picker. You can use it to render smaller and lower-resolution versions of the gifs.

| Property | Type | Description | | ------------- | ---------- | ----------- | | url | string | Direct URL to the preview image source | | height | number | Height of the preview image in pixels | | width | number | Width of the preview image in pixels |

This is an example TenorImage object:

{
  id: "16596569648018104856",
  tenorUrl: "https://tenor.com/view/american-psycho-patrick-bateman-american-psycho-gif-7212093",
  shortTenorUrl: "https://tenor.com/Eqmf.gif",
  description: "American Psycho Patrick Bateman GIF",
  createdAt: Date,
  tags: [ "American Psycho", "Patrick Bateman", "American", "psycho"],
  url: "https://media.tenor.com/5lLcKZgmIhgAAAAC/american-psycho-patrick-bateman.gif",
  height: 240,
  width: 244,
  preview: {
    url: "https://media.tenor.com/5lLcKZgmIhgAAAAM/american-psycho-patrick-bateman.gif",
    height: 120,
    width: 122
  }
}

Customization

Custom Picker Width and Height

To customize the dimensions of the picker, use the height and width props. You can pass in a number that will be treated as pixel size, or your any accepted css width/height as string.

<GifPicker height={500} width={400} />
<GifPicker height="100%" width="15em" />

CSS Variables

The picker can be customized via CSS variables. The root selector for the picker is .GifPickerReact, when overriding, make sure to provide a more specific selector.

The list of possible variables is quite extensive, but the main ones you may want to override are:

  • --gpr-bg-color - Background color of the picker.
  • --gpr-text-color - Font color on the picker.
  • --gpr-highlight-color - Color on the hover on focus on some search bar, categories and gif.

You can find full list of all variables in GifPickerReact.css.

Contributing

Want to contribute to the project?

First of all, thanks! Check CONTRIBUTING.md for more details.