fix conjugated emoji in slate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
This commit is contained in:
parent
afa19cd60d
commit
6cd3860058
1 changed files with 10 additions and 22 deletions
|
@ -16,37 +16,25 @@ See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import React from 'react';
|
|
||||||
|
|
||||||
import * as sdk from './index';
|
|
||||||
import * as emojione from 'emojione';
|
import * as emojione from 'emojione';
|
||||||
|
|
||||||
import { SelectionRange } from "./autocomplete/Autocompleter";
|
|
||||||
|
|
||||||
|
|
||||||
export function unicodeToEmojiUri(str) {
|
export function unicodeToEmojiUri(str) {
|
||||||
let replaceWith, unicode, alt;
|
|
||||||
if ((!emojione.unicodeAlt) || (emojione.sprites)) {
|
|
||||||
// if we are using the shortname as the alt tag then we need a reversed array to map unicode code point to shortnames
|
|
||||||
const mappedUnicode = emojione.mapUnicodeToShort();
|
const mappedUnicode = emojione.mapUnicodeToShort();
|
||||||
}
|
|
||||||
|
|
||||||
str = str.replace(emojione.regUnicode, function(unicodeChar) {
|
// remove any zero width joiners/spaces used in conjugate emojis as the emojione URIs don't contain them
|
||||||
|
return str.replace(emojione.regUnicode, function(unicodeChar) {
|
||||||
if ((typeof unicodeChar === 'undefined') || (unicodeChar === '') || (!(unicodeChar in emojione.jsEscapeMap))) {
|
if ((typeof unicodeChar === 'undefined') || (unicodeChar === '') || (!(unicodeChar in emojione.jsEscapeMap))) {
|
||||||
// if the unicodeChar doesnt exist just return the entire match
|
// if the unicodeChar doesn't exist just return the entire match
|
||||||
return unicodeChar;
|
return unicodeChar;
|
||||||
} else {
|
} else {
|
||||||
// Remove variant selector VS16 (explicitly emoji) as it is unnecessary and leads to an incorrect URL below
|
|
||||||
if (unicodeChar.length == 2 && unicodeChar[1] == '\ufe0f') {
|
|
||||||
unicodeChar = unicodeChar[0];
|
|
||||||
}
|
|
||||||
|
|
||||||
// get the unicode codepoint from the actual char
|
// get the unicode codepoint from the actual char
|
||||||
unicode = emojione.jsEscapeMap[unicodeChar];
|
const unicode = emojione.jsEscapeMap[unicodeChar];
|
||||||
|
|
||||||
return emojione.imagePathSVG+unicode+'.svg'+emojione.cacheBustParam;
|
const short = mappedUnicode[unicode];
|
||||||
|
const fname = emojione.emojioneList[short].fname;
|
||||||
|
|
||||||
|
return emojione.imagePathSVG+fname+'.svg'+emojione.cacheBustParam;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
return str;
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue