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 ( <>
{

- + + @@ -104,77 +106,23 @@ export const AirDCPPSettingsForm = (): ReactElement => {

- - +
+

+ +

+ {!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: