UNPKG

emoji-mart

Version:

Customizable Slack-like emoji picker for React

59 lines (50 loc) 1.03 kB
var NAMESPACE = 'emoji-mart'; var isLocalStorageSupported = typeof window !== 'undefined' && 'localStorage' in window; let getter; let setter; function setHandlers(handlers) { handlers || (handlers = {}); getter = handlers.getter; setter = handlers.setter; } function setNamespace(namespace) { NAMESPACE = namespace; } function update(state) { for (let key in state) { let value = state[key]; set(key, value); } } function set(key, value) { if (setter) { setter(key, value); } else { if (!isLocalStorageSupported) return; try { window.localStorage[`${NAMESPACE}.${key}`] = JSON.stringify(value); } catch (e) {} } } function get(key) { if (getter) { return getter(key); } else { if (!isLocalStorageSupported) return; try { var value = window.localStorage[`${NAMESPACE}.${key}`]; if (value) { return JSON.parse(value); } } catch (e) { return; } } } export default { update, set, get, setNamespace, setHandlers };