通用评论

Emoji.js 1.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import React from "react";
  2. import { Carousel } from "antd";
  3. import emoji, { prefixUrl, ext } from "../../emoji";
  4. import "./Emoji.css";
  5. // 每页 20 5*4
  6. // 共 20 * 3 = 60 (实际是 54)
  7. const Emoji = ({ onClick }) => {
  8. const content = [[], [], []];
  9. for (let i = 0; i < emoji.length; i++) {
  10. if (i < 20) {
  11. content[0].push(emoji[i]);
  12. } else if (i < 40) {
  13. content[1].push(emoji[i]);
  14. } else if (i < emoji.length) {
  15. content[2].push(emoji[i]);
  16. }
  17. }
  18. return (
  19. <Carousel>
  20. <div>
  21. {content[0].map((item, index) => (
  22. <div className="item" key={item.value}>
  23. <span className="helper" />
  24. <img
  25. src={`${prefixUrl}${item.value}.${ext}`}
  26. alt={item.title}
  27. style={{ display: "inline-block" }}
  28. onClick={() => onClick(item.title)}
  29. />
  30. </div>
  31. ))}
  32. </div>
  33. <div>
  34. {content[1].map((item, index) => (
  35. <div className="item" key={item.value}>
  36. <span className="helper" />
  37. <img
  38. src={`${prefixUrl}${item.value}.${ext}`}
  39. alt={item.title}
  40. style={{ display: "inline-block" }}
  41. onClick={() => onClick(item.title)}
  42. />
  43. </div>
  44. ))}
  45. </div>
  46. <div>
  47. {content[2].map(item => (
  48. <div className="item" key={item.value}>
  49. <span className="helper" />
  50. <img
  51. src={`${prefixUrl}${item.value}.${ext}`}
  52. alt={item.title}
  53. style={{ display: "inline-block" }}
  54. onClick={() => onClick(item.title)}
  55. />
  56. </div>
  57. ))}
  58. </div>
  59. </Carousel>
  60. );
  61. };
  62. export default Emoji;