From eda11d3537aa6d4c121e49ccff2cbd14a6dffeaf Mon Sep 17 00:00:00 2001
From: rishighan
Date: Mon, 19 Sep 2022 15:41:32 -0700
Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20Fixed=20bug=20on=20the=20AirDC++?=
=?UTF-8?q?=20settings=20page?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/client/actions/settings.actions.tsx | 1 -
.../AirDCPPSettings/AirDCPPSettingsForm.tsx | 32 +++++++++++++++----
src/client/context/AirDCPPSocket.tsx | 2 +-
3 files changed, 26 insertions(+), 9 deletions(-)
diff --git a/src/client/actions/settings.actions.tsx b/src/client/actions/settings.actions.tsx
index 194506f..6b1200d 100644
--- a/src/client/actions/settings.actions.tsx
+++ b/src/client/actions/settings.actions.tsx
@@ -16,7 +16,6 @@ export const saveSettings =
method: "POST",
data: { settingsPayload, settingsObjectId },
});
- console.log(result.data);
dispatch({
type: SETTINGS_OBJECT_FETCHED,
data: result.data,
diff --git a/src/client/components/AirDCPPSettings/AirDCPPSettingsForm.tsx b/src/client/components/AirDCPPSettings/AirDCPPSettingsForm.tsx
index c0e3734..b2aea7e 100644
--- a/src/client/components/AirDCPPSettings/AirDCPPSettingsForm.tsx
+++ b/src/client/components/AirDCPPSettings/AirDCPPSettingsForm.tsx
@@ -4,11 +4,25 @@ import { useDispatch } from "react-redux";
import { saveSettings, deleteSettings } from "../../actions/settings.actions";
import { AirDCPPSettingsConfirmation } from "./AirDCPPSettingsConfirmation";
import { AirDCPPSocketContext } from "../../context/AirDCPPSocket";
-import { isUndefined, isEmpty } from "lodash";
+import { isUndefined, isEmpty, isNil } from "lodash";
export const AirDCPPSettingsForm = (): ReactElement => {
const dispatch = useDispatch();
const airDCPPSettings = useContext(AirDCPPSocketContext);
+
+ const hostValidator = (hostname: string): string | null => {
+ const hostnameRegex = /[\W]+/gm;
+ try {
+ if (!isUndefined(hostname)) {
+ const matches = hostname.match(hostnameRegex);
+ return (isNil(matches) && matches.length !== 0) ? hostname : "Invalid hostname; it should not contain special characters";
+ }
+ }
+ catch {
+ return null;
+ }
+
+ }
const onSubmit = useCallback(async (values) => {
try {
airDCPPSettings.setSettings(values);
@@ -52,14 +66,18 @@ export const AirDCPPSettingsForm = (): ReactElement => {
-
+
-
+ validate={hostValidator}>
+ {({ input, meta }) => (
+
+
+ {meta.error && meta.touched && {meta.error}}
+
+ )}
+
+
{
} = configuration;
const initializedAirDCPPSocket = new AirDCPPSocket({
protocol: `${host.protocol}`,
- hostname: `${host.hostname}`,
+ hostname: `${host.hostname}:${host.port}`,
});
const socketConnectionInformation = await initializedAirDCPPSocket.connect(