import { useEffect, useState, useRef } from 'react';
import EditableDataService from '../../services/editable-data-service';
import EditableMediaService from '../../services/editable-media-service'
import CategoryBar from './shared/category-bar';
import EditorComponent from './shared/tiptap';
import ModalComponent from './shared/modal-component';
import MediaUpload from './shared/media-upload'
import { faLeftLong } from '@fortawesome/free-solid-svg-icons';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import {
Container,Row, Col,Spinner, UncontrolledCollapse, Button, ButtonGroup, Card, CardBody, Input, InputGroup, InputGroupText
} from 'reactstrap';
import { useNavigate, useParams } from 'react-router-dom';
function Blog(props) {
let navigate = useNavigate();
const nameField = useRef(null);
const descriptionField = useRef(null);
const tagLineField = useRef(null);
const { blogID } = useParams();
const GlobalTheme = props.GlobalTheme;
const ThemeConfig = props.ThemeConfig;
const [blogData, setBlogData] = useState([]);
const [blogContent, setBlogContent] = useState();
const [coverImage, setCoverImage] = useState(false)
const [modal, setModal] = useState(false);
const [modalText, setModalText] = useState(false);
const [modalTitle, setModalTitle] = useState(false);
const [fileModal, setFileModal] = useState(false);
const toggle = () => setModal(!modal);
const toggleFileModal = () => setFileModal(!fileModal);
const setInfo = (event) => {
EditableDataService.updateData(`/data/blog/update/${blogID}/`,{
"name": nameField.current.value,
"description": descriptionField.current.value,
"tagline": tagLineField.current.value,
"content_body": blogContent,
"cover_image": coverImage ? coverImage !== '-' ? coverImage : '' : blogData.coverImage
}).then(response => {
props.notificationToggler('Blog data saved!');
getInfo()
}).catch(error => {
props.notificationToggler('Failed to update blog!', 'danger');
});
}
const showModal = () => {
setModalTitle('Confirm')
setModalText('Are you sure that you wish to delete this blog?')
toggle()
}
const deleteResource = () => {
EditableDataService.deleteData(`/data/blog/delete/${blogData.id}/`).then(response => {
props.notificationToggler('Blog successfully deleted')
navigate(`/categories/${blogData.parentCategory}`);
}).catch(error => {
props.notificationToggler('Failed to delete blog', 'danger');
});
toggle()
}
const getInfo = () => {
EditableDataService.getData(`/data/blog/${blogID}/`).then(response => {
let responseData = response.data
setBlogData({
"id": responseData["blog_id"],
"name": responseData["name"],
"description": responseData["description"],
"tagLine": responseData["tagline"],
"coverImage": responseData["cover_image"],
"parentCategory": responseData["parent_category"]
})
setBlogContent(responseData["content_body"])
}
);
}
useEffect(() => {
getInfo()
}, []);
useEffect(() => {
if (coverImage){
setInfo()
if (coverImage !== '-') toggleFileModal()
}
}, [coverImage])
if (GlobalTheme && ThemeConfig && blogData) {
return (
{
blogData.coverImage !== "" ?
:""
}
= 765 ? '6':''}`}>
Name
Description
Tagline
);
} else {
return ()
}
}
export default Blog