Skip to content

Commit a710cbb

Browse files
authored
Merge pull request #103 from peterhry/peter/support-emojis
Support emojis
2 parents 4d9e16e + 8a5d521 commit a710cbb

File tree

6 files changed

+30
-5
lines changed

6 files changed

+30
-5
lines changed

dist/circletype.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "circletype",
3-
"version": "2.2.0",
3+
"version": "2.2.1",
44
"description": "A JavaScript library that lets you curve type on the web.",
55
"main": "dist/circletype.min.js",
66
"files": [
@@ -41,5 +41,8 @@
4141
"jsdoc-to-markdown": "^3.0.0",
4242
"webpack": "^3.5.6",
4343
"webpack-dev-server": "^2.9.4"
44+
},
45+
"dependencies": {
46+
"core-js": "^2.5.6"
4447
}
4548
}

src/entry.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import 'core-js/fn/array/from';
12
import CircleType from './class';
23

34
module.exports = CircleType;

src/utils/__tests__/splitNode-test.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,4 +75,21 @@ describe('splitNode', () => {
7575
expect(button).toBeInstanceOf(HTMLButtonElement);
7676
expect(unknown).toBeInstanceOf(HTMLUnknownElement);
7777
});
78+
79+
it('handles all emojis (chars whose length might be `2`)', () => {
80+
const emojis = [ '🙂', '🤓', '👹', '🙉', '💩' ];
81+
const testText = emojis.join('');
82+
const { length } = emojis;
83+
const node = createNode(testText);
84+
const spans = splitNode(node);
85+
86+
expect(spans).toHaveLength(length);
87+
88+
for (let i = 0; i < length; i += 1) {
89+
const span = spans[i];
90+
91+
expect(span).toBeInstanceOf(HTMLSpanElement);
92+
expect(span.innerHTML).toBe(emojis[i]);
93+
}
94+
});
7895
});

src/utils/splitNode.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
export default (node, wrapper = 'span') => {
1111
const wrapperElement = document.createElement(wrapper);
1212

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

1616
parent.insertAdjacentHTML('afterbegin', char === ' ' ? '&nbsp;' : char);

yarn.lock

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -867,7 +867,7 @@ babel-plugin-transform-strict-mode@^6.24.1:
867867
babel-runtime "^6.22.0"
868868
babel-types "^6.24.1"
869869

870-
babel-polyfill@^6.23.0:
870+
babel-polyfill@^6.23.0, babel-polyfill@^6.26.0:
871871
version "6.26.0"
872872
resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153"
873873
dependencies:
@@ -1678,6 +1678,10 @@ core-js@^2.4.0, core-js@^2.5.0:
16781678
version "2.5.1"
16791679
resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.1.tgz#ae6874dc66937789b80754ff5428df66819ca50b"
16801680

1681+
core-js@^2.5.6:
1682+
version "2.5.6"
1683+
resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.6.tgz#0fe6d45bf3cac3ac364a9d72de7576f4eb221b9d"
1684+
16811685
core-util-is@1.0.2, core-util-is@~1.0.0:
16821686
version "1.0.2"
16831687
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"

0 commit comments

Comments
 (0)