// © XlXi 2021 // Graphictoria 5 import axios from 'axios'; import React, { useEffect, useState } from "react"; import { Link, useHistory, useParams } from "react-router-dom"; import Config from '../config.js'; import SetTitle from "../Helpers/Title.js"; import Loader from '../Components/Loader.js'; import { GenericErrorModal } from './Errors.js'; import { Card, CardTitle } from '../Layouts/Card.js'; var url = Config.BaseUrl.replace('http://', ''); var protocol = Config.Protocol; const Post = (props) => { var id = useParams().id; const [state, setState] = useState({offline: false, loading: true}); const [post, setPost] = useState({post: [], replies: {replies: [], meta: [], currentPage: 0}}); const user = props.user; const history = useHistory(); const fetchPost = async () => { await axios.get(`${protocol}apis.${url}/fetch/post/${id}`, {headers: {"X-Requested-With":"XMLHttpRequest"}}).then(data=>{ if (!data.data) {history.push(`/forum`);} const res = data.data; setPost({post: res.post, replies: {replies: res.replies.data, meta: res.replies, currentPage: 0}}); }).catch(error=>{console.log(error);}); } useEffect(async ()=>{ SetTitle(`Forum`); await fetchPost(); setState({...state, loading: false}); }, []); return ( state.loading ? :
{post.post.locked == 1?

This post is locked!

:
{user && user.username? Reply :

Sign in to reply!

}
}

Post Title:

'{post.post.title}'

Date posted:

{post.post.created_at}


[Avatar.]

{post.post.creator.username}

{post.post.body}


{post.replies.replies.length <= 0 && post.post.locked != 1?

There isn't any replies to this post yet!

: null}
{post.replies.replies.map(reply=>(

Date posted:

{reply.created_at}


[Avatar.]

{reply.creator_name}

{reply.body}

))}
); } export default Post;