From 9737c02d45bd429dcf3e90881f85710aa8ef3473 Mon Sep 17 00:00:00 2001 From: victorAnumudu Date: Mon, 4 Mar 2024 15:05:31 +0100 Subject: [PATCH] added family blog api resources --- src/components/familyResources/FamBlog.jsx | 92 ++++++++++++++----- .../familyResources/FamBlogItem.jsx | 2 +- src/services/UsersService.js | 14 +++ 3 files changed, 86 insertions(+), 22 deletions(-) diff --git a/src/components/familyResources/FamBlog.jsx b/src/components/familyResources/FamBlog.jsx index 47ec98c..14521d5 100644 --- a/src/components/familyResources/FamBlog.jsx +++ b/src/components/familyResources/FamBlog.jsx @@ -1,12 +1,46 @@ -import React from 'react' +import React, { useEffect, useState } from 'react' import Layout from '../Partials/Layout' import SearchCom from '../Helpers/SearchCom' import DataIteration from '../Helpers/DataIteration' import FamBlogItem from './FamBlogItem' import CustomBreadcrumb from '../Breadcrumb/CustomBreadcrumb' +import usersService from '../../services/UsersService' +import LoadingSpinner from '../Spinners/LoadingSpinner' export default function FamBlog() { - let blogdata = [1,2,3,4,5,6,7,8] + + const [blogData, setBlogData] = useState({loading: true, data: []}); + + const [filteredBlog, setFilteredBlog] = useState({value: '', data:[]}) // State to hold filter blog + + const handleFilterBlog = ({target}) => { + let filterWord = target.value + let filteredData = [] + if(!filterWord){ + filteredData = blogData?.data?.blogdata + }else{ + filteredData = blogData?.data?.blogdata?.filter(item => item.post_title.toLowerCase().startsWith(filterWord.toLowerCase())) + } + setFilteredBlog({value:target.value, data: filteredData}) + } + + const api = new usersService(); + const getFamilyBlog = async () => { + setBlogData({loading: true, data: []}) + try { + const res = await api.getFamilyBlogData(); + setBlogData({loading: false, data:res.data}); + setFilteredBlog(prev => ({...prev, data:res.data?.blogdata})) + } catch (error) { + setBlogData({loading: false, data: []}) + throw new Error("Error getting mode"); + } + }; + + useEffect(() => { + getFamilyBlog(); + }, []); + return ( <> @@ -25,30 +59,46 @@ export default function FamBlog() {
{/* filter-search */} + {blogData?.data?.blogdata?.length > 0 &&
- +
+ }
-
- - {({ datas }) => ( -
-
- )} -
-
+ {blogData.loading ? +
+ +
+ : blogData?.data?.blogdata?.length > 0 && filteredBlog?.data?.length > 0? +
+ + {({ datas }) => ( +
+
+ )} +
+
+ : +
+

No Blog Found

+
+ }
diff --git a/src/components/familyResources/FamBlogItem.jsx b/src/components/familyResources/FamBlogItem.jsx index d03eebc..4174668 100644 --- a/src/components/familyResources/FamBlogItem.jsx +++ b/src/components/familyResources/FamBlogItem.jsx @@ -13,7 +13,7 @@ export default function FamBlogItem({datas, className, bg, hidden=false}) {
diff --git a/src/services/UsersService.js b/src/services/UsersService.js index e3d3410..cefb14c 100644 --- a/src/services/UsersService.js +++ b/src/services/UsersService.js @@ -1279,6 +1279,20 @@ class usersService { }; return this.postAuxEnd("/familyresources", postData); } + + // API FUNCTION TO GET FAMILY BLOG DATA + getFamilyBlogData() { + var postData = { + uuid: localStorage.getItem("uid"), + member_id: localStorage.getItem("member_id"), + sessionid: localStorage.getItem("session_token"), + page: 0, + offset: 0, + limit: 100, + }; + return this.postAuxEnd("/blogdata", postData); + } + /* - 20:27:30.118 FLOG_MAX [757411]: REQ_STRING(username) - 20:27:30.118 FLOG_MAX [757411]: REQ_STRING(password) -- 2.34.1