import React, { useState, useEffect } from "react"; import { Link } from "react-router-dom"; import Button from "@material-ui/core/Button"; import { useNavigate } from "react-router-dom"; import axios from "axios"; import { isAutheticated } from "src/auth"; import swal from "sweetalert"; import { Box, FormControl, IconButton, InputLabel, MenuItem, Select, TextField, } from "@mui/material"; import SearchIcon from "@mui/icons-material/Search"; import Fuse from "fuse.js"; import { Typography } from "@material-ui/core"; import { AppBlockingSharp } from "@mui/icons-material"; const Blogs = () => { const token = isAutheticated(); const [query, setQuery] = useState(""); const navigate = useNavigate(); const [loading, setLoading] = useState(true); const [success, setSuccess] = useState(true); const [BlogsData, setBlogsData] = useState([]); const [currentPage, setCurrentPage] = useState(1); const [itemPerPage, setItemPerPage] = useState(10); const [showData, setShowData] = useState(BlogsData); const handleShowEntries = (e) => { setCurrentPage(1); setItemPerPage(e.target.value); }; const getBlogsData = async () => { axios .get(`/api/v1/blog/getallblog/`, { headers: { Authorization: `Bearer ${token}`, }, }) .then((res) => { setBlogsData(res?.data?.BlogData); setLoading(false); }) .catch((error) => { swal({ title: error, text: "please login to access the resource or refresh the page ", icon: "error", button: "Retry", dangerMode: true, }); setLoading(false); }); }; useEffect(() => { getBlogsData(); }, [success]); useEffect(() => { const loadData = () => { const indexOfLastPost = currentPage * itemPerPage; const indexOfFirstPost = indexOfLastPost - itemPerPage; setShowData(BlogsData.slice(indexOfFirstPost, indexOfLastPost)); }; loadData(); }, [currentPage, itemPerPage, BlogsData]); const handleDelete = (id) => { swal({ title: "Are you sure?", icon: "error", buttons: { Yes: { text: "Yes", value: true }, Cancel: { text: "Cancel", value: "cancel" }, }, }).then((value) => { if (value === true) { axios .delete(`/api/v1/blog/deleteblog/${id}`, { // Correct the API endpoint headers: { "Access-Control-Allow-Origin": "*", Authorization: `Bearer ${token}`, }, }) .then((res) => { swal({ title: "Deleted", text: "Blog Deleted successfully!", icon: "success", button: "ok", }); setSuccess((prev) => !prev); }) .catch((err) => { swal({ title: "Warning", text: "Something went wrong!", icon: "error", button: "Retry", dangerMode: true, }); }); } }); }; useEffect(() => { setTimeout(() => { if (query !== "") { const lowerCaseQuery = query.toLowerCase(); // Convert query to lowercase const searchedResult = BlogsData.filter((item) => item.title.toString().toLowerCase().includes(lowerCaseQuery) ); setShowData(searchedResult); } else { getBlogsData(); } }, 100); }, [query]); return (
Image | Title | Added On | Actions |
---|---|---|---|
No Data Available |
|||
Loading... | |||
{blog.image && (
|
{blog.title} | {new Date(blog.createdAt).toLocaleString( "en-IN", { weekday: "short", month: "short", day: "numeric", year: "numeric", hour: "numeric", minute: "numeric", hour12: true, } )} |