diff --git a/src/RouteLinks.js b/src/RouteLinks.js index 0601eb2..b8ad1d7 100644 --- a/src/RouteLinks.js +++ b/src/RouteLinks.js @@ -9,6 +9,7 @@ const RouteLinks = { billings: '/billings', files_uploads: '/files-uploads', recentSignup: '/recent-signup', + recentAccount: '/recent-account', loansPage: '/loans', transactionsPage: '/transactions', countrySettings: '/country', diff --git a/src/SiteRoutes.jsx b/src/SiteRoutes.jsx index 3793cdb..e239120 100644 --- a/src/SiteRoutes.jsx +++ b/src/SiteRoutes.jsx @@ -25,6 +25,7 @@ import CountrySettingsPage from "./pages/CountrySettingsPage"; import ProductViewPage from "./pages/ProductViewPage"; import FilesUploadPage from "./pages/FilesUploadPage"; // TRANSACTION DETAILS PAGE import AccountEditpage from "./pages/AccountEditPage"; +import RecentAccountsPage from "./pages/RecentAccountsPage"; // const Home = lazy(() => import('./pages/Home')); @@ -35,6 +36,8 @@ export default function SiteRoutes() { }> }/> {`*/HOME PAGE*/`} + + }/> {`*/RECENT SIGNUP PAGE*/`} }/> {`*/RECENT SIGNUP PAGE*/`} }/> {`*/SUBSCRIPTIONS PAGE*/`} }/> {`*/CUSTOMER PAGE*/`} diff --git a/src/components/layouts/aside/DashboardAside.jsx b/src/components/layouts/aside/DashboardAside.jsx index 6fcbdff..0dadf24 100644 --- a/src/components/layouts/aside/DashboardAside.jsx +++ b/src/components/layouts/aside/DashboardAside.jsx @@ -151,8 +151,9 @@ export default function DashboardAside() { const asideNavLinks = [ {name: 'Dashboard', status: 1, icon: 'dashboard', to: RouteLinks.homePage}, { - name: 'Deployments', title: 'Activities', status: 1, icon: 'arrow-right', subLinks: [ + name: 'Front Office', title: 'Activities', status: 1, icon: 'arrow-right', subLinks: [ {name: 'Recent Signup', status: 1, icon: 'dot', to: RouteLinks.recentSignup}, + {name: 'Recent Accounts(30)', status: 1, icon: 'dot', to: RouteLinks.recentAccount}, {name: 'Provisions', status: 1, icon: 'dot', to: RouteLinks.subscriptions}, {name: 'Customers', status: 1, icon: 'dot', to: RouteLinks.customerPage}, {name: 'Billings', status: 1, icon: 'dot', to: RouteLinks.billings}, diff --git a/src/components/recent_accounts/RecentAccounts.jsx b/src/components/recent_accounts/RecentAccounts.jsx new file mode 100644 index 0000000..edbd226 --- /dev/null +++ b/src/components/recent_accounts/RecentAccounts.jsx @@ -0,0 +1,203 @@ +import { useState } from "react"; +import { useQuery } from "@tanstack/react-query"; +import queryKeys from "../../services/queryKeys"; + +import BreadcrumbCom from "../breadcrumb/BreadcrumbCom"; +import TablePaginatedWrapper from "../tableWrapper/TablePaginatedWrapper"; +import Icons from "../Icons"; +import { getRecentSignup } from "../../services/siteServices"; +import getDateTimeFromDateString from "../../helpers/getDateTimeFromDateString"; +import {Link} from 'react-router-dom'; + + +export default function RecentAccounts() { + const [page, setPage] = useState(1); + const [filter, setFilter] = useState({ type: "", id: "" }); + const [willFilter, setWillFilter] = useState(false); + + const handleFilter = ({ target: { name, value } }) => { + setFilter((prev) => ({ ...prev, [name]: value })); + }; + + const handleFilterByParams = () => { + if (filter.type && !filter.id) { + return; + } else if (!filter.type) { + setPage(1); + setWillFilter((prev) => !prev); + setFilter({ type: "", id: "" }); + } else { + setPage(1); + setWillFilter((prev) => !prev); + } + }; + + const { data, isFetching, isError, error } = useQuery({ + queryKey: [...queryKeys.recent_signup, page, willFilter], + queryFn: () => { + const filterData = filter?.type ? { [filter?.type]: filter.id } : {}; + const reqData = { + page, + ...filterData, + }; + return getRecentSignup(reqData); + }, + staleTime: 0, //0 mins + }); + const recentSignupData = data?.data?.members; // BILLINGS LIST + const pagination = data?.data?.pagination; + // console.log('DATA', data?.data) + + return ( +
+ + +
+ {isError ? ( +

{error?.message}

+ ) : ( + <> + {/* filter section */} +
+ +
+ +
+
+ +
+ +
+ {/* end of filter section */} + + + {({ data }) => ( + <> + + + + + + + + + + + + {data && data.length > 0 ? ( + data?.map((item, index) => ( + + + + + + + + + )) + ) : ( + + + + )} + +
+ Added + + User Name /Email + + Name + + Country + + Action +
+
+
+
+ {getDateTimeFromDateString(item?.added)} +
+
+
+
+
+
+ {item?.username} +
+
+ {item?.email} +
+
+
+
+
+ {item?.firstname} {item?.lastname} +
+ {/*
{item?.external_url}
*/} +
+
+
+
+ {item?.country} +
+
+
+
+
+ + + +
+
+
+
+ No Record Found +
+
+ + )} +
+ + )} +
+
+ ); +} diff --git a/src/pages/RecentAccountsPage.jsx b/src/pages/RecentAccountsPage.jsx new file mode 100644 index 0000000..2228b83 --- /dev/null +++ b/src/pages/RecentAccountsPage.jsx @@ -0,0 +1,8 @@ +import React from 'react' +import RecentAccounts from "../components/recent_accounts/RecentAccounts"; + +export default function RecentAccountsPage() { + return ( + + ) +}