Filter
filterEmojis.js
export const filterEmojis = ({ emojisData, searchText = "", maxResult = 20 }) => {
const filteredEmojis = emojisData.filter(emoji => {
if(emoji.title.toLowerCase().includes(searchText.toLowerCase())) {
return true
}
if(emoji.keywords.includes(searchText.toLowerCase())) {
return true
}
return false
});
return filteredEmojis.splice(0, maxResult)
}
update file /Emojis/index.jsx
import React, { useState, useEffect } from "react";
import EmojiBox from "../EmojiBox";
import PropTypes from 'prop-types';
import styles from './Emojis.module.css';
import { filterEmojis } from "../../Utils/filterEmojis";
const Emojis = ({ emojisData, searchText }) => {
const [filteredEmojis, setFilteredEmojis] = useState([])
useEffect(() => {
setFilteredEmojis(filterEmojis({
emojisData: emojisData,
searchText: searchText
}))
}, [emojisData, searchText])
return (
<div className={styles.emojisGrid}>
{filteredEmojis.map((data ,index) => (
<EmojiBox
key={index}
title={data.title}
symbol={data.symbol}
/>
))}
</div>
)
}
Emojis.propTypes = {
emojisData: PropTypes.array,
searchText: PropTypes.string
}
export default Emojis
Yang akan muncul adalah 20 data
Last updated
Was this helpful?