diff --git a/package.json b/package.json index ae7b1d8..2af6625 100644 --- a/package.json +++ b/package.json @@ -59,7 +59,7 @@ "react-notification-system": "^0.4.0", "react-notification-system-redux": "^2.0.1", "react-responsive-carousel": "^3.2.21", - "react-select": "^4.3.1", + "react-select": "^5.2.1", "react-sliding-pane": "^7.0.0", "react-stickynode": "^4.0.0", "react-table": "^7.7.0", diff --git a/src/client/actions/settings.actions.tsx b/src/client/actions/settings.actions.tsx index 813d0ee..ef3691c 100644 --- a/src/client/actions/settings.actions.tsx +++ b/src/client/actions/settings.actions.tsx @@ -6,11 +6,11 @@ import { import { SETTINGS_SERVICE_BASE_URI } from "../constants/endpoints"; export const saveSettings = - (settingsObject, airdcppUserSettings) => async (dispatch) => { + (settingsPayload, settingsObjectId?) => async (dispatch) => { const result = await axios({ url: `${SETTINGS_SERVICE_BASE_URI}/saveSettings`, method: "POST", - data: { settingsObject, airdcppUserSettings }, + data: { settingsPayload, settingsObjectId }, }); console.log(result.data); dispatch({ diff --git a/src/client/components/AcquisitionPanel.tsx b/src/client/components/AcquisitionPanel.tsx index 63355fd..dcc0744 100644 --- a/src/client/components/AcquisitionPanel.tsx +++ b/src/client/components/AcquisitionPanel.tsx @@ -7,7 +7,7 @@ import { import { useDispatch, useSelector } from "react-redux"; import { RootState, SearchInstance } from "threetwo-ui-typings"; import ellipsize from "ellipsize"; -import { isEmpty, isNil, isUndefined, map } from "lodash"; +import { isEmpty, isNil, isUndefined, map, pick } from "lodash"; import { AirDCPPSocketContext } from "../context/AirDCPPSocket"; interface IAcquisitionPanelProps { comicBookMetadata: any; @@ -43,8 +43,8 @@ export const AcquisitionPanel = ( async (searchQuery) => { dispatch( search(searchQuery, ADCPPSocket, { - username: `${userSettings.directConnect.client.username}`, - password: `${userSettings.directConnect.client.password}`, + username: `${userSettings.directConnect.client.host.username}`, + password: `${userSettings.directConnect.client.host.password}`, }), ); }, @@ -59,7 +59,7 @@ export const AcquisitionPanel = ( extensions: ["cbz", "cbr"], }, // "comic-scans.no-ip.biz:24674", - hub_urls: ["perfection.comichub.org:777"], + hub_urls: map(userSettings.directConnect.client.hubs, (item) => item.value), priority: 5, }; @@ -73,16 +73,16 @@ export const AcquisitionPanel = ( comicBookObjectId, ADCPPSocket, { - username: `${userSettings.directConnect.client.username}`, - password: `${userSettings.directConnect.client.password}`, + username: `${userSettings.directConnect.client.host.username}`, + password: `${userSettings.directConnect.client.host.password}`, }, ), ); // this is to update the download count badge on the downloads tab dispatch( getBundlesForComic(comicBookObjectId, ADCPPSocket, { - username: `${userSettings.directConnect.client.username}`, - password: `${userSettings.directConnect.client.password}`, + username: `${userSettings.directConnect.client.host.username}`, + password: `${userSettings.directConnect.client.host.password}`, }), ); }, @@ -126,6 +126,17 @@ export const AcquisitionPanel = (
{JSON.stringify(
- settings.directConnect.client.airdcppUserSettings.user
+ settings.directConnect.client.airDCPPUserSettings.user
.permissions,
undefined,
2,
diff --git a/src/client/components/AirDCPPSettingsForm.tsx b/src/client/components/AirDCPPSettings/AirDCPPSettingsForm.tsx
similarity index 77%
rename from src/client/components/AirDCPPSettingsForm.tsx
rename to src/client/components/AirDCPPSettings/AirDCPPSettingsForm.tsx
index 93efd38..8ffa4aa 100644
--- a/src/client/components/AirDCPPSettingsForm.tsx
+++ b/src/client/components/AirDCPPSettings/AirDCPPSettingsForm.tsx
@@ -1,27 +1,18 @@
import React, { ReactElement, useCallback, useContext, useEffect } from "react";
import { Form, Field } from "react-final-form";
-import { useSelector, useDispatch } from "react-redux";
-import {
- getSettings,
- saveSettings,
- deleteSettings,
-} from "../actions/settings.actions";
-import { AirDCPPSettingsConfirmation } from "./AirDCPPSettings/AirDCPPSettingsConfirmation";
+import { useDispatch } from "react-redux";
+import { saveSettings, deleteSettings } from "../../actions/settings.actions";
+import { AirDCPPSettingsConfirmation } from "./AirDCPPSettingsConfirmation";
import axios from "axios";
-import { AirDCPPSocketContext } from "../context/AirDCPPSocket";
-import AirDCPPSocket from "../services/DcppSearchService";
+import { AirDCPPSocketContext } from "../../context/AirDCPPSocket";
+import AirDCPPSocket from "../../services/DcppSearchService";
import { isUndefined, isEmpty } from "lodash";
-export const AirDCPPSettingsForm = (): ReactElement => {
- const airDCPPClientSettings = useSelector(
- (state: RootState) => state.settings.data,
- );
-
- const { setADCPPSocket } = useContext(AirDCPPSocketContext);
+export const AirDCPPSettingsForm = (airDCPPClientSettings): ReactElement => {
+ const { settings } = airDCPPClientSettings;
const dispatch = useDispatch();
- useEffect(() => {
- dispatch(getSettings());
- }, []);
+ const { setADCPPSocket } = useContext(AirDCPPSocketContext);
+
const onSubmit = async (values) => {
try {
const airDCPPResponse = await axios({
@@ -33,20 +24,17 @@ export const AirDCPPSettingsForm = (): ReactElement => {
},
});
if (airDCPPResponse.status === 200) {
- dispatch(saveSettings(values, airDCPPResponse.data));
+ dispatch(
+ saveSettings({
+ host: values,
+ airDCPPUserSettings: airDCPPResponse.data,
+ }),
+ );
setADCPPSocket(
new AirDCPPSocket({
hostname: `${values.hostname}`,
}),
);
- const hubList = await axios({
- url: `${values.protocol}://${values.hostname}/api/v1/hubs`,
- method: "GET",
- params: {
- username: values.username,
- password: values.password,
- },
- });
}
} catch (error) {
console.log(error);
@@ -60,9 +48,8 @@ export const AirDCPPSettingsForm = (): ReactElement => {
const validate = async () => {};
const initFormData =
- !isEmpty(airDCPPClientSettings.directConnect) ||
- !isUndefined(airDCPPClientSettings.directConnect)
- ? airDCPPClientSettings.directConnect.client
+ !isEmpty(settings.directConnect) || !isUndefined(settings.directConnect)
+ ? settings.directConnect.client.host
: {};
return (
<>
@@ -140,11 +127,11 @@ export const AirDCPPSettingsForm = (): ReactElement => {
)}
/>
-
- {!isEmpty(airDCPPClientSettings) ? (
-
+ {!isEmpty(settings) ? (
+
) : null}
- {!isEmpty(airDCPPClientSettings) ? (
+
+ {!isEmpty(settings) ? (