diff options
| author | Miqdad <ahmadmiqdad27@gmail.com> | 2025-09-01 15:25:16 +0700 |
|---|---|---|
| committer | Miqdad <ahmadmiqdad27@gmail.com> | 2025-09-01 15:25:16 +0700 |
| commit | 93f99f867afde7c61530da85ef2e26280a1d18df (patch) | |
| tree | 909c7f22d8fec21dc80104341356ccb531f55514 | |
| parent | f0d166e9d35e935a02d4c872af63c97f80bfbcfa (diff) | |
<Miqdad> No reload
| -rw-r--r-- | src/lib/transaction/components/Transactions.jsx | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/src/lib/transaction/components/Transactions.jsx b/src/lib/transaction/components/Transactions.jsx index 287451ef..4572a7b5 100644 --- a/src/lib/transaction/components/Transactions.jsx +++ b/src/lib/transaction/components/Transactions.jsx @@ -42,6 +42,7 @@ import { DateRangePicker } from 'react-date-range'; import 'react-date-range/dist/styles.css'; import 'react-date-range/dist/theme/default.css'; + const Transactions = ({ context = '' }) => { const auth = useAuth(); const router = useRouter(); @@ -58,6 +59,8 @@ const Transactions = ({ context = '' }) => { const { setRefreshCart } = useProductCartContext(); const [inputQuery, setInputQuery] = useState(q); + const [cachedAllData, setCachedAllData] = useState(null); // Simpan data "All" + const [currentData, setCurrentData] = useState([]); // Data yang ditampilkan const [toOthers, setToOthers] = useState(null); const [toCancel, setToCancel] = useState(null); const [listSites, setListSites] = useState([]); @@ -339,20 +342,22 @@ const Transactions = ({ context = '' }) => { } }; - const handleStatusChange = (status) => { + const handleStatusChange = async (status) => { setStatusNew(status); setPageNew(1); - // opsional: sinkronkan ke URL - router.push({ - pathname: router.pathname, - query: { ...router.query, status }, - }); - }; - useEffect(() => { - // bersihkan cache lama jika perlu (saat first mount) - // (sengaja kosong; tidak pakai cached data di versi ini) - }, []); + if (status === 'all' && cachedAllData) { + setCurrentData(cachedAllData); + return; + } + const data = await fetchSite(status, 1); + + if (status === 'all') { + setCachedAllData(data); + } + + setCurrentData(data); + }; const handleReset = () => { setState([{ startDate: null, endDate: new Date(), key: 'selection' }]); |
