mirror of
https://github.com/gnmyt/myspeed.git
synced 2026-02-07 05:58:32 -06:00
refactor: add deleteTest logic to SpeedtestContext and improve context destructuring
This commit is contained in:
@@ -34,7 +34,7 @@ const HeaderComponent = () => {
|
||||
const [icon, setIcon] = useState(faGear);
|
||||
const [status, updateStatus] = useContext(StatusContext);
|
||||
const [startedManually, setStartedManually] = useState(false);
|
||||
const updateTests = useContext(SpeedtestContext)[1];
|
||||
const {updateTests} = useContext(SpeedtestContext);
|
||||
const [config, reloadConfig, checkConfig] = useContext(ConfigContext);
|
||||
const [updateAvailable, setUpdateAvailable] = useState("");
|
||||
const [isDropdownOpen, setIsDropdownOpen] = useState(false);
|
||||
|
||||
@@ -9,7 +9,7 @@ import {faFileExport, faFileImport, faTrashCan} from "@fortawesome/free-solid-sv
|
||||
export default ({tests}) => {
|
||||
const close = useContext(DialogContext);
|
||||
const [deleteWarning, setDeleteWarning] = useState(false);
|
||||
const updateTests = useContext(SpeedtestContext)[1];
|
||||
const {updateTests} = useContext(SpeedtestContext);
|
||||
const updateToast = useContext(ToastNotificationContext);
|
||||
|
||||
const deleteHistory = () => {
|
||||
|
||||
@@ -94,6 +94,16 @@ export const SpeedtestProvider = (props) => {
|
||||
}
|
||||
}, [speedtests]);
|
||||
|
||||
const deleteTest = useCallback((id) => {
|
||||
setSpeedtests(prev => prev.filter(test => test.id !== id));
|
||||
if (speedtests.length === 1) {
|
||||
setLastId(null);
|
||||
setHasMore(false);
|
||||
} else if (speedtests[speedtests.length - 1].id === id) {
|
||||
setLastId(speedtests[speedtests.length - 2].id);
|
||||
}
|
||||
});
|
||||
|
||||
const updateTests = useCallback(() => {
|
||||
refreshTests();
|
||||
}, [refreshTests]);
|
||||
@@ -111,7 +121,7 @@ export const SpeedtestProvider = (props) => {
|
||||
}, [refreshTests]);
|
||||
|
||||
return (
|
||||
<SpeedtestContext.Provider value={[speedtests, updateTests, loadMoreTests, loading, hasMore]}>
|
||||
<SpeedtestContext.Provider value={{speedtests, updateTests, deleteTest, loadMoreTests, loading, hasMore}}>
|
||||
{props.children}
|
||||
</SpeedtestContext.Provider>
|
||||
)
|
||||
|
||||
@@ -11,12 +11,12 @@ import {getIconBySpeed} from "@/common/utils/TestUtil";
|
||||
import {downloadInfo, latestTestInfo, pingInfo, uploadInfo} from "@/pages/Home/components/LatestTest/utils/dialogs";
|
||||
import {t} from "i18next";
|
||||
|
||||
function LatestTestComponent() {
|
||||
const LatestTestComponent = () => {
|
||||
const status = useContext(StatusContext)[0];
|
||||
const [latest, setLatest] = useState(null);
|
||||
const [latestTestTime, setLatestTestTime] = useState("N/A");
|
||||
const [setDialog] = useContext(InputDialogContext);
|
||||
const [speedtests] = useContext(SpeedtestContext);
|
||||
const {speedtests} = useContext(SpeedtestContext);
|
||||
const config = useContext(ConfigContext)[0];
|
||||
|
||||
useEffect(() => {
|
||||
|
||||
Reference in New Issue
Block a user