import React from 'react'
import {Link} from 'react-router-dom'
import Img from '../../../assets/user_avatar.jpg'
import CustomCounter from '../../CustomCounter'

export default function RecentPaymentsBar({data, isFetching, isError, error}) {
    
    const recentPayment = data?.data?.recent_payment_summary
    const recentLogin = data?.data?.recent_login

    return (
        <div className='h-full p-2 sm:p-4 large:p-8 flex flex-col gap-16 aside-scroll-design'>
            <div className='flex flex-col gap-4'>
                <p className='text-base text-white-body font-bold'>Recent Payments [7 days]</p>
                {isFetching ?
                <div className='w-full flex justify-center'>
                    <div className="w-6 h-6 border-2 border-gray-300 border-b-gray-500 rounded-full animate-spin"></div>
                </div>
                :
                isError ?
                <p className='text-base text-white-body font-bold'>{error?.message}</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={recentPayment?.approved} 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={recentPayment?.verified} timeInSeconds={1} />
                        </p>
                        <p className='text-sm text-slate-500'>Verified</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={recentPayment?.failed} timeInSeconds={1} />
                        </p>
                        <p className='text-sm text-slate-500'>Failed</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={recentPayment?.total} timeInSeconds={1} />
                        </p>
                        <p className='text-sm text-slate-500'>Total</p>
                    </div>
                </div>
                }
            </div>
            <div className='overflow-y-auto h-full flex flex-col gap-4'>
                <p className='text-base text-white-body font-bold'>Recent Login</p>
                {isFetching ?
                <div className='w-full flex justify-center'>
                    <div className="w-6 h-6 border-2 border-gray-300 border-b-gray-500 rounded-full animate-spin"></div>
                </div>
                :
                isError ?
                <p className='text-base text-white-body font-bold'>{error?.message}</p>
                :
                <div className='flex flex-col gap-4'>
                    {recentLogin.map((item, index)=> {
                        return (
                            <Link 
                                to={`/account-view/${item?.member_uid}`}
                                state={{customerID: item?.id, memberUID: item?.member_uid}} 
                                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" />
                                </div>
                                <div className='flex-col'>
                                    <p className='text-base font-bold text-white-body'>{item.firstname} {item.lastname}</p>
                                    <p className='text-sm text-slate-500'>{item.username}</p>
                                </div>
                            </Link>
                        )
                    }
                    )}
                </div>
                }
            </div>
        </div>
    )
}
