UNPKG

gif-picker-react

Version:

Multi-provider GIF Picker for React with pluggable provider support

2 lines 1.72 kB
function e(e,n){return new t(e,n)}var t=class{constructor(e,t={}){this.apiKey=e,this.config=t}async getCategories(){return(await this.fetchApi(`categories`,{type:`featured`})).tags.map(e=>({name:e.name,searchTerm:e.searchterm,imageUrl:e.image}))}async search(e){return(await this.fetchApi(`search`,{q:e,ar_range:`all`,limit:50})).results.map(e=>this.parseGif(e))}async getTrending(){return(await this.fetchApi(`featured`,{ar_range:`all`,limit:50})).results.map(e=>this.parseGif(e))}async onClick(e,t){await this.fetchApi(`registershare`,{id:e.id,...t.searchTerm&&{q:t.searchTerm}})}async fetchApi(e,t){let n=new URL((this.config.baseUrl??`https://tenor.googleapis.com/v2/`)+e);n.searchParams.set(`key`,this.apiKey),n.searchParams.set(`media_filter`,`gif,tinygif`),n.searchParams.set(`client_key`,this.config.clientKey??`gif-picker-react`),this.config.contentFilter&&n.searchParams.set(`contentfilter`,this.config.contentFilter),this.config.locale&&n.searchParams.set(`locale`,this.config.locale),this.config.country&&n.searchParams.set(`country`,this.config.country),t&&Object.entries(t).forEach(([e,t])=>n.searchParams.set(e,t));let r=await fetch(n.toString());if(!r.ok)throw Error(`Tenor API request failed (${r.status} ${r.statusText})`);return r.json()}getAttribution(){return{searchPlaceholder:`Search Tenor`}}parseGif(e){let t=e.media_formats.gif,n=e.media_formats.tinygif;return{id:e.id,imageUrl:t.url,width:t.dims[0],height:t.dims[1],description:e.content_description,preview:{imageUrl:n.url,width:n.dims[0],height:n.dims[1]},provider:`tenor`,raw:e}}};let n=function(e){return e.HIGH=`high`,e.MEDIUM=`medium`,e.LOW=`low`,e.OFF=`off`,e}({});export{n as ContentFilter,e as Tenor}; //# sourceMappingURL=index.mjs.map