function BlogListPageContent()

in src/theme/BlogListPage/index.tsx [31:72]


function BlogListPageContent(props: Props): JSX.Element {
  const { items, sidebar } = props;
  const [renderItems, setRenderItem] = useState(items);
  const location = useLocation();
  let rItem = items;
  useEffect(() => {
    const tagQuery = new URLSearchParams(location.search).get("tag");
    const searchKey = new URLSearchParams(location.search).get("key");

    if (tagQuery === "All" && searchKey === null) {
      setRenderItem(rItem);
      return;
    } else if (tagQuery) {
      rItem = items.filter((item) => {
        return item.content.metadata.tags.find(
          (item) => item.label === tagQuery
        );
      });
      setRenderItem(rItem);
    }
    if (searchKey) {
      rItem = items.filter((item) => {
        return (
          item.content.metadata.title
            .toLowerCase()
            .includes(searchKey.toLowerCase()) ||
          item.content.metadata.description
            .toLowerCase()
            .includes(searchKey.toLowerCase())
        );
      });
    }
    setRenderItem(rItem);
  }, [location]);

  return (
    <BlogLayout sidebar={sidebar} items={props.items}>
      <BlogPostItems items={renderItems} />
      {/* <BlogListPaginator metadata={metadata} /> */}
    </BlogLayout>
  );
}