From 7995826cb42693a7eb2ee954549d42c1ceeda3b5 Mon Sep 17 00:00:00 2001 From: kj1352 Date: Wed, 21 Jul 2021 13:57:01 +0530 Subject: [PATCH] search feature in category details --- .../category-details/CategoryDetails.tsx | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/components/category-details/CategoryDetails.tsx b/src/components/category-details/CategoryDetails.tsx index b06b0b9..4e411b9 100644 --- a/src/components/category-details/CategoryDetails.tsx +++ b/src/components/category-details/CategoryDetails.tsx @@ -1,4 +1,4 @@ -import React from "react"; +import React, { useState } from "react"; import styles from './CategoryDetails.module.scss'; import { useLocation } from 'react-router'; import queryString from 'query-string'; @@ -10,11 +10,25 @@ import { ReactComponent as PlusCircledIcon } from '../../assets/icons/plus-circl import { userProfileData } from "../home/Home"; import { CircularProgressbar } from "react-circular-progressbar"; import { NavLink } from "react-router-dom"; +import { IShelf } from "../../structure/shelf"; export const CategoryDetails: React.FC = () => { const location = useLocation(); const category_id: any = queryString.parse(location.pathname)['/category-details/category_id']; const shelfCount: number = userProfileData.categories[category_id].shelves.length; + const [shelfResult, setShelfResult] = useState>(userProfileData.categories[category_id].shelves); + + const searchShelf = (text: string) => { + if (text.length > 0) { + let result = shelfResult.filter(shelf => { + return shelf.name.toLowerCase().includes(text.toLowerCase()); + }); + + setShelfResult(result); + } else { + setShelfResult(userProfileData.categories[category_id].shelves); + } + } return
@@ -45,7 +59,7 @@ export const CategoryDetails: React.FC = () => {
- + searchShelf(event.currentTarget.value)} />
@@ -56,7 +70,7 @@ export const CategoryDetails: React.FC = () => {
    - { userProfileData.categories[Number(category_id)].shelves.map(shelf => { + { shelfResult.map(shelf => { return
  • 0 ? (shelf.revisedWords.length * 100/ shelf.words.length) : 0} strokeWidth={7}