🏗 Actions, reducers for Downloads

This commit is contained in:
2022-06-13 14:56:15 -07:00
parent 15c0840c63
commit 7a3e0def34
6 changed files with 29 additions and 30 deletions

View File

@@ -17,6 +17,7 @@ import {
AIRDCPP_FILE_DOWNLOAD_COMPLETED,
LS_SINGLE_IMPORT,
IMS_COMIC_BOOK_DB_OBJECT_FETCHED,
AIRDCPP_TRANSFERS_FETCHED,
} from "../constants/action-types";
import { isNil } from "lodash";
import axios from "axios";
@@ -265,8 +266,13 @@ export const getTransfers =
true,
);
}
const foo = await ADCPPSocket.get("queue/bundles/1/50", {});
console.log(foo);
const transfers = await ADCPPSocket.get("queue/bundles/1/50", {});
if (!isNil(transfers)) {
dispatch({
type: AIRDCPP_TRANSFERS_FETCHED,
transfers,
});
}
} catch (err) {
throw err;
}

View File

@@ -1,9 +1,7 @@
import React, { ReactElement, useCallback, useContext, useEffect } from "react";
import { getSettings } from "../../actions/settings.actions";
import { getTransfers } from "../../actions/airdcpp.actions";
import { useDispatch, useSelector } from "react-redux";
import { AirDCPPSocketContext } from "../../context/AirDCPPSocket";
import AirDCPPSocket from "../../services/DcppSearchService";
import { isEmpty, isUndefined } from "lodash";
interface IDownloadsProps {
@@ -11,41 +9,26 @@ interface IDownloadsProps {
}
export const Downloads = (props: IDownloadsProps): ReactElement => {
const { ADCPPSocket, setADCPPSocket } = useContext(AirDCPPSocketContext);
const airDCPPConfiguration = useContext(AirDCPPSocketContext);
const { AirDCPPSocket, settings } = airDCPPConfiguration;
const dispatch = useDispatch();
const airDCPPClientSettings = useSelector(
(state: RootState) => state.settings.data,
const AirDCPPTransfers = useSelector(
(state: RootState) => state.airdcpp.transfers,
);
useEffect(() => {
dispatch(getSettings());
}, []);
useEffect(() => {
if (!isEmpty(airDCPPClientSettings)) {
setADCPPSocket(
new AirDCPPSocket({
hostname: `${airDCPPClientSettings.directConnect.client.host.hostname}`,
protocol: `${airDCPPClientSettings.directConnect.client.host.protocol}`,
}),
);
}
}, [airDCPPClientSettings]);
console.log(airDCPPClientSettings);
// Make the call to get all transfers from AirDC++
useEffect(() => {
if (!isUndefined(ADCPPSocket) && !isEmpty(airDCPPClientSettings)) {
if (!isUndefined(AirDCPPSocket) && !isEmpty(airDCPPConfiguration)) {
dispatch(
getTransfers(ADCPPSocket, {
username: `${airDCPPClientSettings.directConnect.client.host.username}`,
password: `${airDCPPClientSettings.directConnect.client.host.password}`,
getTransfers(AirDCPPSocket, {
username: `${settings.directConnect.client.host.username}`,
password: `${settings.directConnect.client.host.password}`,
}),
);
}
}, [ADCPPSocket]);
}, [AirDCPPSocket]);
// const getAllDownloads = useCallback(() => {});
return <></>;
return <pre>{JSON.stringify(AirDCPPTransfers, null, 2)}</pre>;
};
export default Downloads;

View File

@@ -110,6 +110,9 @@ export const LS_SINGLE_IMPORT = "LS_SINGLE_IMPORT";
export const AIRDCPP_BUNDLES_FETCHED = "AIRDCPP_BUNDLES_FETCHED";
export const AIRDCPP_DOWNLOAD_PROGRESS_TICK = "AIRDCPP_DOWNLOAD_PROGRESS_TICK";
// Transfers
export const AIRDCPP_TRANSFERS_FETCHED = "AIRDCPP_TRANSFERS_FETCHED";
// LIBRARY SOCKET ENDPOINT
export const LS_IMPORT = "LS_IMPORT";
export const LS_COVER_EXTRACTED = "LS_COVER_EXTRACTED";

View File

@@ -7,6 +7,7 @@ import {
AIRDCPP_DOWNLOAD_PROGRESS_TICK,
AIRDCPP_FILE_DOWNLOAD_COMPLETED,
AIRDCPP_BUNDLES_FETCHED,
AIRDCPP_TRANSFERS_FETCHED,
} from "../constants/action-types";
import { LOCATION_CHANGE } from "redux-first-history";
import { isUndefined } from "lodash";
@@ -21,6 +22,7 @@ const initialState = {
bundleDBImportResult: null,
downloadFileStatus: {},
bundles: [],
transfers: [],
};
function airdcppReducer(state = initialState, action) {
@@ -81,6 +83,11 @@ function airdcppReducer(state = initialState, action) {
return {
...state,
};
case AIRDCPP_TRANSFERS_FETCHED:
return {
...state,
transfers: action.transfers,
};
case LOCATION_CHANGE:
return {
searchResults: [],