@helpscout/hsds-react
Version:
React component library for Help Scout's Design System
34 lines (23 loc) • 1.24 kB
JavaScript
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;
;