diff --git a/src/client/actions/settings.actions.tsx b/src/client/actions/settings.actions.tsx
index 0585c9a..6a02a40 100644
--- a/src/client/actions/settings.actions.tsx
+++ b/src/client/actions/settings.actions.tsx
@@ -1,5 +1,4 @@
import axios from "axios";
-import { IExtractionOptions } from "threetwo-ui-typings";
import { SETTINGS_OBJECT_FETCHED } from "../constants/action-types";
import { SETTINGS_SERVICE_BASE_URI } from "../constants/endpoints";
@@ -10,6 +9,7 @@ export const saveSettings =
method: "POST",
data: { settingsObject, airdcppUserSettings },
});
+ console.log(result.data);
dispatch({
type: SETTINGS_OBJECT_FETCHED,
data: result.data,
diff --git a/src/client/components/AcquisitionPanel.tsx b/src/client/components/AcquisitionPanel.tsx
index 7458ea0..d9a0e9e 100644
--- a/src/client/components/AcquisitionPanel.tsx
+++ b/src/client/components/AcquisitionPanel.tsx
@@ -44,22 +44,21 @@ export const AcquisitionPanel = (
const dispatch = useDispatch();
useEffect(() => {
dispatch(getSettings());
- if (!isUndefined(airDCPPClientSettings[0])) {
+ if (!isEmpty(airDCPPClientSettings)) {
const dcppSocket = new AirDCPPSocket({
- hostname: `${airDCPPClientSettings[0].directConnect.client.hostname}`,
+ hostname: `${airDCPPClientSettings.directConnect.client.hostname}`,
});
setADCPPSocket(dcppSocket);
}
- }, [dispatch, airDCPPClientSettings.length]);
+ }, [dispatch]);
- console.log(ADCPPSocket);
const getDCPPSearchResults = useCallback(
(searchQuery) => {
dispatch(search(searchQuery));
},
[dispatch],
);
-
+ console.log(airDCPPClientSettings);
const dcppQuery = {
query: {
pattern: `${sanitizedVolumeName.replace(/#/g, "")}`,
@@ -84,21 +83,33 @@ export const AcquisitionPanel = (
return (
<>
-
-
-
+ {!isEmpty(airDCPPClientSettings) &&
+ !isUndefined(airDCPPClientSettings) ? (
+
+
+
+ ) : (
+
+
+
+ AirDC++ is not configured. Please configure it in{" "}
+ Settings.
+
+
+
+ )}
{/* AirDC++ search instance details */}
{!isNil(searchInfo) && !isNil(searchInstance) && (
<>
diff --git a/src/client/components/AirDCPPSettings/AirDCPPSettingsConfirmation.tsx b/src/client/components/AirDCPPSettings/AirDCPPSettingsConfirmation.tsx
new file mode 100644
index 0000000..354bbc6
--- /dev/null
+++ b/src/client/components/AirDCPPSettings/AirDCPPSettingsConfirmation.tsx
@@ -0,0 +1,71 @@
+import React, { ReactElement } from "react";
+
+export const AirDCPPSettingsConfirmation = (settingsObject): ReactElement => {
+ const { settings } = settingsObject;
+ return (
+
+
+
+
+
+
+
+
+ - {settings._id}
+ -
+ Client version:{" "}
+ {
+ settings.directConnect.client.airdcppUserSettings.system_info
+ .client_version
+ }
+
+ -
+ Hostname:{" "}
+ {
+ settings.directConnect.client.airdcppUserSettings.system_info
+ .hostname
+ }
+
+ -
+ Platform:{" "}
+ {
+ settings.directConnect.client.airdcppUserSettings.system_info
+ .platform
+ }
+
+
+ -
+ Username:{" "}
+ {
+ settings.directConnect.client.airdcppUserSettings.user
+ .username
+ }
+
+
+ -
+ Active Sessions:{" "}
+ {
+ settings.directConnect.client.airdcppUserSettings.user
+ .active_sessions
+ }
+
+ -
+ Permissions:{" "}
+
+ {JSON.stringify(
+ settings.directConnect.client.airdcppUserSettings.user
+ .permissions,
+ undefined,
+ 2,
+ )}
+
+
+
+
+
+
+
+ );
+};
+
+export default AirDCPPSettingsConfirmation;
diff --git a/src/client/components/AirDCPPSettingsForm.tsx b/src/client/components/AirDCPPSettingsForm.tsx
index a70577e..347a39d 100644
--- a/src/client/components/AirDCPPSettingsForm.tsx
+++ b/src/client/components/AirDCPPSettingsForm.tsx
@@ -2,12 +2,13 @@ import React, { ReactElement, useEffect } from "react";
import { Form, Field } from "react-final-form";
import { useDispatch, useSelector } from "react-redux";
import { saveSettings, getSettings } from "../actions/settings.actions";
+import { AirDCPPSettingsConfirmation } from "./AirDCPPSettings/AirDCPPSettingsConfirmation";
import axios from "axios";
import { isUndefined, isEmpty } from "lodash";
export const AirDCPPSettingsForm = (): ReactElement => {
const airdcppClientSettings = useSelector(
- (state: RootState) => state.settings.data[0],
+ (state: RootState) => state.settings.data,
);
const dispatch = useDispatch();
@@ -34,9 +35,11 @@ export const AirDCPPSettingsForm = (): ReactElement => {
}
};
const validate = async () => {};
- const initFormData = !isUndefined(airdcppClientSettings)
- ? airdcppClientSettings.directConnect.client
- : null;
+ const initFormData =
+ !isEmpty(airdcppClientSettings.directConnect) ||
+ !isUndefined(airdcppClientSettings.directConnect)
+ ? airdcppClientSettings.directConnect.client
+ : {};
return (
<>
-
-
+
+
+
+
+ {!isUndefined(airdcppClientSettings) ? (
+
+
+
+ ) : null}
+
)}
/>
- {!isUndefined(airdcppClientSettings) &&
- !isEmpty(airdcppClientSettings) ? (
-
-
-
-
-
-
-
-
- - {airdcppClientSettings._id}
- -
- Client version:{" "}
- {
- airdcppClientSettings.directConnect.client
- .airdcppUserSettings.system_info.client_version
- }
-
- -
- Hostname:{" "}
- {
- airdcppClientSettings.directConnect.client
- .airdcppUserSettings.system_info.hostname
- }
-
- -
- Platform:{" "}
- {
- airdcppClientSettings.directConnect.client
- .airdcppUserSettings.system_info.platform
- }
-
-
- -
- Username:{" "}
- {
- airdcppClientSettings.directConnect.client
- .airdcppUserSettings.user.username
- }
-
-
- -
- Active Sessions:{" "}
- {
- airdcppClientSettings.directConnect.client
- .airdcppUserSettings.user.active_sessions
- }
-
- -
- Permissions:{" "}
-
- {JSON.stringify(
- airdcppClientSettings.directConnect.client
- .airdcppUserSettings.user.permissions,
- undefined,
- 2,
- )}
-
-
-
-
-
-
-
+ {!isEmpty(airdcppClientSettings) ? (
+
) : null}
>
);
diff --git a/src/client/reducers/settings.reducer.ts b/src/client/reducers/settings.reducer.ts
index bfd892f..df9bc8b 100644
--- a/src/client/reducers/settings.reducer.ts
+++ b/src/client/reducers/settings.reducer.ts
@@ -20,6 +20,7 @@ function settingsReducer(state = initialState, action) {
return {
...state,
data: action.data,
+ inProgress: false,
};
default: