added recent-loans endpoint

This commit was merged in pull request #35.
This commit is contained in:
victorAnumudu
2025-11-03 20:13:02 +01:00
parent 3c8a738454
commit e9edc036eb
11 changed files with 115 additions and 132 deletions
+14 -66
View File
@@ -2,77 +2,25 @@ import React from 'react'
import Img from '../../../assets/user_avatar.jpg'
import CustomCounter from '../../CustomCounter'
export default function Orders() {
export default function Orders({data}) {
return (
<div className='h-full p-2 sm:p-4 large:p-8 flex flex-col gap-16 overflow-y-auto aside-scroll-design'>
{/*<div className='flex flex-col gap-4'>*/}
{/* <p className='text-base text-white-body font-bold'>Recent Eligibility</p>*/}
{/* <div className='grid grid-cols-2 gap-4 sm:gap-6 large:gap-8'>*/}
{/* <div className='p-2 sm:p-3 large:p-4 flex flex-col border border-slate-500 border-dashed'>*/}
{/* <p className='text-base font-bold text-white-body'>*/}
{/* <CustomCounter targetNumber={18} timeInSeconds={1} />*/}
{/* </p>*/}
{/* <p className='text-sm text-slate-500'>Pending</p>*/}
{/* </div>*/}
{/* <div className='p-2 sm:p-3 large:p-4 flex flex-col border border-slate-500 border-dashed'>*/}
{/* <p className='text-base font-bold text-white-body'>*/}
{/* <CustomCounter targetNumber={5} timeInSeconds={1} />*/}
{/* </p>*/}
{/* <p className='text-sm text-slate-500'>Approved</p>*/}
{/* </div>*/}
{/* <div className='p-2 sm:p-3 large:p-4 flex flex-col border border-slate-500 border-dashed'>*/}
{/* <p className='text-base font-bold text-white-body'>*/}
{/* <CustomCounter targetNumber={1} timeInSeconds={1} />*/}
{/* </p>*/}
{/* <p className='text-sm text-slate-500'>Rejected</p>*/}
{/* </div>*/}
{/* <div className='p-2 sm:p-3 large:p-4 flex flex-col border border-slate-500 border-dashed'>*/}
{/* <p className='text-base font-bold text-white-body'>*/}
{/* <CustomCounter targetNumber={1} timeInSeconds={1} />*/}
{/* </p>*/}
{/* <p className='text-sm text-slate-500'>Created</p>*/}
{/* </div>*/}
{/* </div>*/}
{/*</div>*/}
<div className='flex flex-col gap-4'>
<p className='text-base text-white-body font-bold'>Recent Loans</p>
<div className='flex flex-col gap-4'>
<div className='flex gap-3 items-center'>
<div className='px-4 py-2 bg-[#0E172E] rounded-md'>
<img src={Img} className='w-8' alt="Order Image" />
</div>
<div className='flex-col'>
<p className='text-base font-bold text-white-body'>Project Briefing</p>
<p className='text-sm text-slate-500'>Project Manager</p>
</div>
</div>
<div className='flex gap-3 items-center'>
<div className='px-4 py-2 bg-[#0E172E] rounded-md'>
<img src={Img} className='w-8' alt="Order Image" />
</div>
<div className='flex-col'>
<p className='text-base font-bold text-white-body'>Project Briefing</p>
<p className='text-sm text-slate-500'>Project Manager</p>
</div>
</div>
<div className='flex gap-3 items-center'>
<div className='px-4 py-2 bg-[#0E172E] rounded-md'>
<img src={Img} className='w-8' alt="Order Image" />
</div>
<div className='flex-col'>
<p className='text-base font-bold text-white-body'>Project Briefing</p>
<p className='text-sm text-slate-500'>Project Manager</p>
</div>
</div>
<div className='flex gap-3 items-center'>
<div className='px-4 py-2 bg-[#0E172E] rounded-md'>
<img src={Img} className='w-8' alt="Order Image" />
</div>
<div className='flex-col'>
<p className='text-base font-bold text-white-body'>Project Briefing</p>
<p className='text-sm text-slate-500'>Project Manager</p>
</div>
</div>
{data.map((item, index)=>{
return (
<div key={index} className='flex gap-3 items-center'>
<div className='px-4 py-2 bg-[#0E172E] rounded-md'>
<img src={Img} className='w-8' alt="Order Image" />
</div>
<div className='flex-col'>
<p className='text-base font-bold text-white-body'>Project Briefing</p>
<p className='text-sm text-slate-500'>Project Manager</p>
</div>
</div>
)
})}
</div>
</div>
</div>
@@ -1,4 +1,7 @@
import React, { useState } from 'react'
import { useQuery } from "@tanstack/react-query";
import queryKeys from '../../../services/queryKeys'
import { getRecentLoans } from '../../../services/siteServices'
import Icons from '../../Icons'
import Orders from './Orders'
import Tickets from './Tickets'
@@ -13,25 +16,41 @@ export default function RightAsideBar() {
setActive(lowerStr)
}
return (
<div className='w-full h-full flex flex-col gap-8'>
{/* Menu */}
<div className='grid grid-cols-3 gap-8'>
<button name='orders' onClick={() => handleActiveMenu('orders')} className={`flex justify-center items-center px-2 py-3 large:px-4 large:py-5 rounded-md shadow-round_white bg-[#0E172E] text-white-body hover:scale-[1.1] ${active == 'orders' && 'scale-[1.2]'}`}>
<Icons name='dashboard' className='text-3xl' />
</button>
{/*<button name='tickets' onClick={() => handleActiveMenu('tickets')} className={`flex justify-center items-center px-2 py-3 large:px-4 large:py-5 rounded-md shadow-round_white bg-[#0E172E] text-white-body hover:scale-[1.1] ${active == 'tickets' && 'scale-[1.2]'}`}>*/}
{/* <Icons name='settings' className='text-3xl' />*/}
{/*</button>*/}
{/*<button name='tasks' onClick={() => handleActiveMenu('tasks')} className={`flex justify-center items-center px-2 py-3 large:px-4 large:py-5 rounded-md shadow-round_white bg-[#0E172E] text-white-body hover:scale-[1.1] ${active == 'tasks' && 'scale-[1.2]'}`}>*/}
{/* <Icons name='dashboard' className='text-3xl' />*/}
{/*</button>*/}
</div>
const {data, isFetching, isError, error} = useQuery({
queryKey: queryKeys.recent_loans,
queryFn: () => getRecentLoans()
})
{/* Body */}
{active === 'orders' && <Orders />}
{/*{active == 'tickets' && <Tickets />}*/}
{/*{active == 'tasks' && <Tasks />}*/}
</div>
)
console.log('data', data?.data)
return (
<div className='w-full h-full flex flex-col gap-8'>
{/* Menu */}
<div className='grid grid-cols-3 gap-8'>
<button name='orders' onClick={() => handleActiveMenu('orders')} className={`flex justify-center items-center px-2 py-3 large:px-4 large:py-5 rounded-md shadow-round_white bg-[#0E172E] text-white-body hover:scale-[1.1] ${active == 'orders' && 'scale-[1.2]'}`}>
<Icons name='dashboard' className='text-3xl' />
</button>
{/*<button name='tickets' onClick={() => handleActiveMenu('tickets')} className={`flex justify-center items-center px-2 py-3 large:px-4 large:py-5 rounded-md shadow-round_white bg-[#0E172E] text-white-body hover:scale-[1.1] ${active == 'tickets' && 'scale-[1.2]'}`}>*/}
{/* <Icons name='settings' className='text-3xl' />*/}
{/*</button>*/}
{/*<button name='tasks' onClick={() => handleActiveMenu('tasks')} className={`flex justify-center items-center px-2 py-3 large:px-4 large:py-5 rounded-md shadow-round_white bg-[#0E172E] text-white-body hover:scale-[1.1] ${active == 'tasks' && 'scale-[1.2]'}`}>*/}
{/* <Icons name='dashboard' className='text-3xl' />*/}
{/*</button>*/}
</div>
{/* Body */}
{(isFetching || isError) ?
<div className=''>
{isError ? <p className='p-8 bg-white text-red-500'>{error.message}</p> :
<p className='text-white'>Loading...</p>}
</div>
:
<div className='w-full'>
{active === 'orders' && <Orders data={[1,2,3,4,5]} />}
{/*{active == 'tickets' && <Tickets />}*/}
{/*{active == 'tasks' && <Tasks />}*/}
</div>
}
</div>
)
}