UNPKG

@helpscout/hsds-react

Version:

React component library for Help Scout's Design System

34 lines (23 loc) 1.24 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.textIncludesOnlyEmoji = exports.isWordString = exports.isWord = void 0; var _lodash = _interopRequireDefault(require("lodash.isstring")); var isWord = function isWord(word) { return typeof word === 'number' || isWordString(word); }; exports.isWord = isWord; var isWordString = function isWordString(word) { return !!((0, _lodash.default)(word) && word.length); }; exports.isWordString = isWordString; var textIncludesOnlyEmoji = function textIncludesOnlyEmoji(text) { // Note: `\u2028`& `\uFE0F` are not emoji characters, but instead unicode line // separators that seem to appear when the `replace` methods are called below. var emojiPattern = /(\u2028|\uFE0F|\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff])/g; if (!isWordString(text)) return false; // Remove all emoji and see if any characters remain var withEmojisRemoved = text.replace(emojiPattern, ''); // Remove spaces var withSpacesRemoved = withEmojisRemoved.replace(/[\s\n]/gm, ''); return !withSpacesRemoved; }; exports.textIncludesOnlyEmoji = textIncludesOnlyEmoji;