1.0.2 • Published 2 years ago

@pingfan.ts/emoji-picker v1.0.2

Weekly downloads
-
License
ISC
Repository
github
Last release
2 years ago

React Emoji Picker

基于 emoji-toolkit 实现的 emoji picker

截图

使用文档

安装

npm install -S @pingfan.ts/emoji-picker

使用

import React, { useState } from 'react';
import type { EmojiItemProps } from '@pingfan.ts/emoji-picker/es/EmojiItem';
import EmojiPicker from '@pingfan.ts/emoji-picker';
import emojiToolkit from 'emoji-toolkit';
import 'emoji-assets/sprites/joypixels-sprite-32.min.css'; // 需要安装 emoji-assets@^6.6.0
import './index.css';

// 全局设置
emojiToolkit.sprites = true; // sprites = true 需要安装 emoji-assets@^6.6.0 依赖并引入 emoji-assets 对应的 css 样式
emojiToolkit.spriteSize = '32';

function App() {
  const [emoji, setEmoji] = useState<EmojiItemProps['emoji']>();
  console.info(emoji);

  return (
    <div className="container">
      <EmojiPicker
        // sprites = true 需要引入 emoji-assets 对应的 css 样式
        emojiToolkit={{ sprites: true, spriteSize: '32' }}
        onSelect={setEmoji}
        // 启用搜索,搜索规则是 匹配 shortname、shortname_alternates、ascii 和 keywords 字段
        search
      />
      {emoji && (
        <div className="preview">
          <div>shortname:{emoji.shortname}</div>
          <div>unicode:{emojiToolkit.shortnameToUnicode(emoji.shortname)}</div>
          <div>
            emoji:
            <span
              dangerouslySetInnerHTML={{ __html: emojiToolkit.shortnameToImage(emoji.shortname) }}
            />
          </div>
        </div>
      )}
    </div>
  );
}

export default App;

API

属性名描述类型默认值
categoriesEmoji 分类Categories--
emojiToolkitemoji-toolkit 选项 ,不影响全局设置EmojiItemProps['emojiToolkit']--
recentCount常用表情个数number36
size网格大小number40
showColCount显示列数number9
showRowCount显示行数number6
search启用搜索,搜索规则是匹配 shortname、shortname_alternates、ascii 和 keywords 字段boolean--
onSelect选择 emoji 表情时回调(emoji: EmojiItemProps['emoji']) => void--
renderHeader自定义头部(activeCategory: Category) => React.ReactNode--

默认 Emoji 分类

const defaultCategories: Categories = [
  {
    category: 'recent',
    title: '常用',
    shortname: ':clock3:',
  },
  {
    category: 'people',
    title: '表情符号与人物',
    shortname: ':smile:',
  },
  {
    category: 'nature',
    title: '动物与自然',
    shortname: ':hamster:',
  },
  {
    category: 'food',
    title: '食物与饮料',
    shortname: ':pizza:',
  },
  {
    category: 'activity',
    title: '活动',
    shortname: ':soccer:',
  },
  {
    category: 'travel',
    title: '旅行与地点',
    shortname: ':earth_americas:',
  },
  {
    category: 'objects',
    title: '物体',
    shortname: ':bulb:',
  },
  {
    category: 'symbols',
    title: '符号',
    shortname: ':symbols:',
  },
  {
    category: 'flags',
    title: '旗帜',
    shortname: ':flag_cn:',
  },
];