import { Box, chakra, Divider, Flex, Heading, HStack, IconButton, Image, storageKey, VStack } from "@chakra-ui/react" import Comments from "components/comments/comments" import Container from "components/container" import LikeButton from "components/story/unicorn-like" import { MarkdownRender } from "components/markdown-editor/render" import PostAuthor from "components/story/post-author" import TagTextCard from "components/story/tag-text-card" import SEO from "components/seo" import siteConfig from "configs/site-config" import useSession from "hooks/use-session" import Nav from "layouts/nav/nav" import PostNav from "layouts/nav/post-nav" import PageContainer from "layouts/page-container" import { cloneDeep } from "lodash" import { useRouter } from "next/router" import { title } from "process" import React, { useEffect, useState } from "react" import { FaBookmark, FaGithub, FaRegBookmark, FaShare, FaShareAlt } from "react-icons/fa" import { ReserveUrls } from "src/data/reserve-urls" import { Comment } from "src/types/comments" import { Post } from "src/types/posts" import { Tag } from "src/types/tag" import { requestApi } from "utils/axios/request" import UnicornLike from "components/story/unicorn-like" import SvgButton from "components/svg-button" import Bookmark from "components/story/bookmark" import PostSidebar from "components/story/post-sidebar" const PostPage = () => { const router = useRouter() const id = router.query.post_id const [post, setPost]: [Post, any] = useState(null) const [comments, setComments]: [Comment[], any] = useState([]) useEffect(() => { if (id) { getData() } }, [id]) useEffect(() => { if (router && router.asPath.indexOf("#comments") > -1) { setTimeout(() => { location.href = "#comments" }, 100) } }, [router]) const getData = async () => { const res = await requestApi.get(`/story/post/${id}`) setPost(res.data) getComments(res.data.id) } const getComments = async (id) => { const res = await requestApi.get(`/story/comments/${id}`) setComments(res.data) } return ( <> {post && } mt="2rem"> <> {post.title} {post.rawTags.map(tag => )} getComments(post.id)} /> } ) } export default PostPage