summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorMiqdad <ahmadmiqdad27@gmail.com>2025-08-29 17:05:44 +0700
committerMiqdad <ahmadmiqdad27@gmail.com>2025-08-29 17:05:44 +0700
commit2710d13d4d417bfa17d6eeaa7493f06d8ae06aa8 (patch)
tree60bc584e1b4806679776443162b7f8a1e5c85cfd /src/lib
parent308563b3f45255450206decc03329dcc64c4bc50 (diff)
<Miqdad> No reload on status change
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/transaction/components/Transactions.jsx26
1 files changed, 20 insertions, 6 deletions
diff --git a/src/lib/transaction/components/Transactions.jsx b/src/lib/transaction/components/Transactions.jsx
index e22cd490..5466466c 100644
--- a/src/lib/transaction/components/Transactions.jsx
+++ b/src/lib/transaction/components/Transactions.jsx
@@ -41,6 +41,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();
@@ -56,6 +57,8 @@ const Transactions = ({ context = '' }) => {
} = router.query;
const { setRefreshCart } = useProductCartContext();
+ const [cachedAllData, setCachedAllData] = useState(null); // Simpan data "All"
+ const [currentData, setCurrentData] = useState([]);
const [inputQuery, setInputQuery] = useState(q);
const [toOthers, setToOthers] = useState(null);
const [toCancel, setToCancel] = useState(null);
@@ -338,17 +341,28 @@ 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 },
- });
+
+ if (status === 'all' && cachedAllData) {
+ setCurrentData(cachedAllData);
+ return;
+ }
+ const data = await fetchSite(status, 1);
+
+ if (status === 'all') {
+ setCachedAllData(data);
+ }
+
+ setCurrentData(data);
};
useEffect(() => {
+ setCachedAllData([]);
+ }, []);
+
+ useEffect(() => {
// bersihkan cache lama jika perlu (saat first mount)
// (sengaja kosong; tidak pakai cached data di versi ini)
}, []);