mirror of
				https://github.com/lingble/chatwoot.git
				synced 2025-10-31 19:17:48 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			48 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /**
 | |
|  * Detects support for emoji character sets.
 | |
|  *
 | |
|  * Based on the Modernizr emoji detection.
 | |
|  * https://github.com/Modernizr/Modernizr/blob/347ddb078116cee91b25b6e897e211b023f9dcb4/feature-detects/emoji.js
 | |
|  *
 | |
|  * @return {Boolean} true or false
 | |
|  * @example
 | |
|  *
 | |
|  * hasEmojiSupport()
 | |
|  * // => true|false
 | |
|  */
 | |
| export const hasEmojiSupport = () => {
 | |
|   const pixelRatio = window.devicePixelRatio || 1;
 | |
|   const offset = 12 * pixelRatio;
 | |
|   const node = document.createElement('canvas');
 | |
| 
 | |
|   // canvastext support
 | |
|   if (
 | |
|     !node.getContext ||
 | |
|     !node.getContext('2d') ||
 | |
|     typeof node.getContext('2d').fillText !== 'function'
 | |
|   ) {
 | |
|     return false;
 | |
|   }
 | |
| 
 | |
|   const ctx = node.getContext('2d');
 | |
| 
 | |
|   ctx.fillStyle = '#f00';
 | |
|   ctx.textBaseline = 'top';
 | |
|   ctx.font = '32px Arial';
 | |
|   ctx.fillText('\ud83d\udc28', 0, 0); // U+1F428 KOALA
 | |
|   return ctx.getImageData(offset, offset, 1, 1).data[0] !== 0;
 | |
| };
 | |
| 
 | |
| export const removeEmoji = text => {
 | |
|   if (text) {
 | |
|     return text
 | |
|       .replace(
 | |
|         /([\u2700-\u27BF]|[\uE000-\uF8FF]|\uD83C[\uDC00-\uDFFF]|\uD83D[\uDC00-\uDFFF]|[\u2011-\u26FF]|\uD83E[\uDD10-\uDDFF])/g,
 | |
|         ''
 | |
|       )
 | |
|       .replace(/\s+/g, ' ')
 | |
|       .trim();
 | |
|   }
 | |
|   return '';
 | |
| };
 | 
