From d4239820f4e48965024254799eef24ae15d953e2 Mon Sep 17 00:00:00 2001 From: Wikzyy Date: Thu, 17 Apr 2025 16:54:03 +0700 Subject: [PATCH] fix refresh on kyc --- src/pages/members/kyc/Kyc.tsx | 31 ++++++++++- src/pages/members/kyc/blocks/ListToolBar.tsx | 55 ++++++++++--------- .../members/manage-members/ManageMembers.tsx | 55 ++++++++++--------- 3 files changed, 88 insertions(+), 53 deletions(-) diff --git a/src/pages/members/kyc/Kyc.tsx b/src/pages/members/kyc/Kyc.tsx index 969db5e..6e3fcbf 100644 --- a/src/pages/members/kyc/Kyc.tsx +++ b/src/pages/members/kyc/Kyc.tsx @@ -1,4 +1,10 @@ -import { Container, DataGridInner, DataGridProvider, TDataGridProps } from '@/components'; +import { + Container, + DataGridInner, + DataGridProvider, + TDataGridProps, + useDataGrid +} from '@/components'; import { DataTable } from '@/components/ui/DataTable'; import { Table } from '@tanstack/react-table'; import React, { createContext, useContext, useState, useEffect } from 'react'; @@ -17,6 +23,7 @@ import DetailMember from '../manage-members/blocks/DetailMember'; import { Breadcrumbs, Link } from '@mui/material'; import { Helmet } from 'react-helmet'; import { ListToolBar } from './blocks/ListToolBar'; +import { RefreshCw } from 'lucide-react'; const Kyc = () => { const [loading, setLoading] = useState(false); @@ -26,6 +33,7 @@ const Kyc = () => { const [isDialogOpen, setIsDialogOpen] = useState(false); const [dialogOpen, setDialogOpen] = useState(false); const [dialogType, setDialogType] = useState(''); + const [isReloading, setIsReloading] = useState(false); const closeDialog = () => setIsDialogOpen(false); const { getUser } = useAuthContext(); @@ -65,6 +73,9 @@ const Kyc = () => { } catch (error: any) { toast.error(error.message); console.log(error); + } finally { + setLoading(false); + setIsReloading(false); } } @@ -89,6 +100,11 @@ const Kyc = () => { setMember(initialMember); }; + const handleReload = () => { + setIsReloading(true); + fetchCustomers(); + }; + const handleYes = async () => { setLoading(true); const userLogin: any = await getUser(); @@ -172,6 +188,7 @@ const Kyc = () => { } finally { await fetchCustomers(); setLoading(false); + setIsReloading(false); } }; @@ -237,12 +254,20 @@ const Kyc = () => { {/*
*/} -
+
+ {isReloading && ( +
+
+ + Refreshing data... +
+
+ )} } + toolbar={} layout={{ card: true }} sorting={[{ id: 'created_at', desc: true }]} serverSide={false} diff --git a/src/pages/members/kyc/blocks/ListToolBar.tsx b/src/pages/members/kyc/blocks/ListToolBar.tsx index 180e68b..54ffca7 100644 --- a/src/pages/members/kyc/blocks/ListToolBar.tsx +++ b/src/pages/members/kyc/blocks/ListToolBar.tsx @@ -1,40 +1,45 @@ import { DefaultTooltip, KeenIcon, useDataGrid } from '@/components'; import { Button } from '@/components/ui/button'; import { useKycContext } from '../hooks'; +import { useState } from 'react'; -const ListToolBar = () => { +interface ListToolbarProps { + onReload: () => void; + isReloading: boolean; +} + +const ListToolBar = ({ onReload, isReloading }: ListToolbarProps) => { const { table, reload } = useDataGrid(); + const [usernameFilter, setUsernameFilter] = useState(''); + + const handleUsernameChange = (e: React.ChangeEvent) => { + setUsernameFilter(e.target.value); + table.getColumn('username')?.setFilterValue(e.target.value); + }; return (
-
- - - - +
+
- -
diff --git a/src/pages/members/manage-members/ManageMembers.tsx b/src/pages/members/manage-members/ManageMembers.tsx index 7ac36d2..3dedff3 100644 --- a/src/pages/members/manage-members/ManageMembers.tsx +++ b/src/pages/members/manage-members/ManageMembers.tsx @@ -47,7 +47,7 @@ const ManageMembers = () => { order_field: 'created_at', order_direction: 'DESC' } - }); + }); let temp = 1; let resMembers = customers.data.data.list.map((el: any) => { el.no = temp++; @@ -73,11 +73,10 @@ const ManageMembers = () => { toast.error(error.message); console.log(error); } finally { - setLoading(false) + setLoading(false); setIsReloading(false); } } - const handleUpdate = (data: any) => { setDialogType('update'); @@ -233,29 +232,35 @@ const ManageMembers = () => { {/*
*/} - +
- {isReloading && ( -
-
- - Refreshing data... -
-
- )} - } - onRowSelectionChange={(selected, table: any) => { - const selectedRow = table.getSelectedRowModel().rows[0]; - if (selectedRow) handleUpdate(selectedRow.original); - }} - > -
+ {isReloading && ( +
+
+ + Refreshing data... +
+
+ )} + + } + onRowSelectionChange={(selected, table: any) => { + const selectedRow = table.getSelectedRowModel().rows[0]; + if (selectedRow) handleUpdate(selectedRow.original); + }} + > +
{/*
*/}