emoji-mart-native
Version:
Customizable Slack-like emoji picker for React Native
1 lines • 1.41 kB
JavaScript
;var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports["default"]=void 0;var _store=_interopRequireDefault(require("./store"));var DEFAULTS=['+1','grinning','kissing_heart','heart_eyes','laughing','stuck_out_tongue_winking_eye','sweat_smile','joy','scream','disappointed','unamused','weary','sob','sunglasses','heart','poop'];var frequently,initialized;var defaults={};function init(){initialized=true;frequently=_store["default"].get('frequently');}function add(emoji){if(!initialized)init();var id=emoji.id;frequently||(frequently=defaults);frequently[id]||(frequently[id]=0);frequently[id]+=1;_store["default"].set('last',id);_store["default"].set('frequently',frequently);}function get(perLine){if(!initialized)init();if(!frequently){defaults={};var result=[];for(var i=0;i<perLine;i++){defaults[DEFAULTS[i]]=perLine-i;result.push(DEFAULTS[i]);}return result;}var quantity=perLine*3;var frequentlyKeys=[];for(var key in frequently){if(frequently.hasOwnProperty(key)){frequentlyKeys.push(key);}}var sorted=frequentlyKeys.sort(function(a,b){return frequently[a]-frequently[b];}).reverse();var sliced=sorted.slice(0,quantity);var last=_store["default"].get('last');if(last&&sliced.indexOf(last)==-1){sliced.pop();sliced.push(last);}return sliced;}var _default={add:add,get:get};exports["default"]=_default;