Replace useEffectEvent in scan terminal dashboard
This commit is contained in:
@@ -5,7 +5,6 @@ import {
|
|||||||
startTransition,
|
startTransition,
|
||||||
useDeferredValue,
|
useDeferredValue,
|
||||||
useEffect,
|
useEffect,
|
||||||
useEffectEvent,
|
|
||||||
useMemo,
|
useMemo,
|
||||||
useState,
|
useState,
|
||||||
} from "react";
|
} from "react";
|
||||||
@@ -348,7 +347,7 @@ function ScanTerminalScreen() {
|
|||||||
);
|
);
|
||||||
}, [deferredRows, selectedRowId]);
|
}, [deferredRows, selectedRowId]);
|
||||||
|
|
||||||
const fetchTerminal = useEffectEvent(async (filters: FilterState, force = false) => {
|
const fetchTerminal = async (filters: FilterState, force = false) => {
|
||||||
setLoading(true);
|
setLoading(true);
|
||||||
setError(null);
|
setError(null);
|
||||||
try {
|
try {
|
||||||
@@ -368,9 +367,9 @@ function ScanTerminalScreen() {
|
|||||||
} finally {
|
} finally {
|
||||||
setLoading(false);
|
setLoading(false);
|
||||||
}
|
}
|
||||||
});
|
};
|
||||||
|
|
||||||
const fetchDetail = useEffectEvent(async (row: ScanOpportunityRow) => {
|
const fetchDetail = async (row: ScanOpportunityRow) => {
|
||||||
if (!row.market_slug || !row.selected_date) return;
|
if (!row.market_slug || !row.selected_date) return;
|
||||||
if (detailByRowId[row.id] !== undefined) return;
|
if (detailByRowId[row.id] !== undefined) return;
|
||||||
setDetailLoadingId(row.id);
|
setDetailLoadingId(row.id);
|
||||||
@@ -392,11 +391,11 @@ function ScanTerminalScreen() {
|
|||||||
} finally {
|
} finally {
|
||||||
setDetailLoadingId((current) => (current === row.id ? null : current));
|
setDetailLoadingId((current) => (current === row.id ? null : current));
|
||||||
}
|
}
|
||||||
});
|
};
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
void fetchTerminal(DEFAULT_FILTERS, false);
|
void fetchTerminal(DEFAULT_FILTERS, false);
|
||||||
}, [fetchTerminal]);
|
}, []);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const intervalId = window.setInterval(() => {
|
const intervalId = window.setInterval(() => {
|
||||||
@@ -405,12 +404,12 @@ function ScanTerminalScreen() {
|
|||||||
return () => {
|
return () => {
|
||||||
window.clearInterval(intervalId);
|
window.clearInterval(intervalId);
|
||||||
};
|
};
|
||||||
}, [activeFilters, fetchTerminal]);
|
}, [activeFilters]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!selectedRow) return;
|
if (!selectedRow) return;
|
||||||
void fetchDetail(selectedRow);
|
void fetchDetail(selectedRow);
|
||||||
}, [selectedRow, fetchDetail]);
|
}, [selectedRow, detailByRowId]);
|
||||||
|
|
||||||
const selectedDetail = selectedRow ? detailByRowId[selectedRow.id] : null;
|
const selectedDetail = selectedRow ? detailByRowId[selectedRow.id] : null;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user