import { chakra, Flex, Heading, HStack, Text, VStack, Menu, MenuButton, MenuList, MenuItem, IconButton, Divider, Wrap, Image, useColorModeValue } from "@chakra-ui/react" import SEO from "components/seo" import siteConfig from "configs/site-config" import PageContainer1 from "layouts/page-container1" import React, { useEffect, useState } from "react" import { HomeSidebar } from 'pages/index' import Card from "components/card" import { config } from "configs/config" import { getSvgIcon } from "components/svg-icon" import { Tag } from "src/types/tag" import { requestApi } from "utils/axios/request" import TagCard from 'src/components/tags/tag-card' import { Post } from "src/types/posts" import Posts from "components/story/posts" import { find } from "lodash" import userCustomTheme from "theme/user-custom" import Empty from "components/empty" const BookmarksPage = () => { const [filter, setFilter]:[Tag,any] = useState({id:"-1"}) const [tags, setTags]: [Tag[], any] = useState([]) const [rawPosts,setRawPosts]: [Post[],any] = useState([]) const [posts,setPosts]: [Post[],any] = useState([]) useEffect(() => { getBookmarkPosts() }, []) useEffect(() => { filterPosts() }, [filter]) const getBookmarkPosts = async() => { const res = await requestApi.get(`/story/bookmark/posts`) setRawPosts(res.data) setPosts(res.data) const ts = [{id:-1,title:'All Tags',icon: 'https://cdn.hashnode.com/res/hashnode/image/upload/v1605105898259/3vuMFM8qM.png?w=200&h=200&fit=crop&crop=entropy&auto=compress&auto=compress'}] res.data.forEach(post => { post.rawTags?.forEach(tag => { if (!find(ts, t => t.id === tag.id)) { ts.push(tag) } }) }) setTags(ts) } const filterPosts = () => { if (filter.id === "-1") { setPosts(rawPosts) return } const newPosts = [] rawPosts.forEach(post => { post.rawTags?.forEach(tag => { if (tag.id === filter.id) { newPosts.push(post) } }) }) setPosts(newPosts) } return ( <> Bookmarks All the discussions, stories and comments you have bookmarked on {config.appName}. { tags.map(t => setFilter(t)}> {t.title} ) } {posts.length !== 0 ? : } ) } export default BookmarksPage