Skip to content

Commit

Permalink
Support emojis
Browse files Browse the repository at this point in the history
  • Loading branch information
peterhry committed May 11, 2018
1 parent 4d9e16e commit 8a5d521
Show file tree
Hide file tree
Showing 6 changed files with 30 additions and 5 deletions.
4 changes: 2 additions & 2 deletions dist/circletype.min.js

Large diffs are not rendered by default.

5 changes: 4 additions & 1 deletion package.json
@@ -1,6 +1,6 @@
{
"name": "circletype",
"version": "2.2.0",
"version": "2.2.1",
"description": "A JavaScript library that lets you curve type on the web.",
"main": "dist/circletype.min.js",
"files": [
Expand Down Expand Up @@ -41,5 +41,8 @@
"jsdoc-to-markdown": "^3.0.0",
"webpack": "^3.5.6",
"webpack-dev-server": "^2.9.4"
},
"dependencies": {
"core-js": "^2.5.6"
}
}
1 change: 1 addition & 0 deletions src/entry.js
@@ -1,3 +1,4 @@
import 'core-js/fn/array/from';
import CircleType from './class';

module.exports = CircleType;
17 changes: 17 additions & 0 deletions src/utils/__tests__/splitNode-test.js
Expand Up @@ -75,4 +75,21 @@ describe('splitNode', () => {
expect(button).toBeInstanceOf(HTMLButtonElement);
expect(unknown).toBeInstanceOf(HTMLUnknownElement);
});

it('handles all emojis (chars whose length might be `2`)', () => {
const emojis = [ '🙂', '🤓', '👹', '🙉', '💩' ];
const testText = emojis.join('');
const { length } = emojis;
const node = createNode(testText);
const spans = splitNode(node);

expect(spans).toHaveLength(length);

for (let i = 0; i < length; i += 1) {
const span = spans[i];

expect(span).toBeInstanceOf(HTMLSpanElement);
expect(span.innerHTML).toBe(emojis[i]);
}
});
});
2 changes: 1 addition & 1 deletion src/utils/splitNode.js
Expand Up @@ -10,7 +10,7 @@
export default (node, wrapper = 'span') => {
const wrapperElement = document.createElement(wrapper);

return node.innerText.trim().split('').map(char => {
return [ ...node.innerText.trim() ].map(char => {
const parent = wrapperElement.cloneNode();

parent.insertAdjacentHTML('afterbegin', char === ' ' ? '&nbsp;' : char);
Expand Down
6 changes: 5 additions & 1 deletion yarn.lock
Expand Up @@ -867,7 +867,7 @@ babel-plugin-transform-strict-mode@^6.24.1:
babel-runtime "^6.22.0"
babel-types "^6.24.1"

babel-polyfill@^6.23.0:
babel-polyfill@^6.23.0, babel-polyfill@^6.26.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153"
dependencies:
Expand Down Expand Up @@ -1678,6 +1678,10 @@ core-js@^2.4.0, core-js@^2.5.0:
version "2.5.1"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.1.tgz#ae6874dc66937789b80754ff5428df66819ca50b"

core-js@^2.5.6:
version "2.5.6"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.6.tgz#0fe6d45bf3cac3ac364a9d72de7576f4eb221b9d"

core-util-is@1.0.2, core-util-is@~1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
Expand Down

0 comments on commit 8a5d521

Please sign in to comment.