🐛 Fixed bug on the AirDC++ settings page

This commit is contained in:
2022-09-19 15:41:32 -07:00
parent 262f8d49d7
commit eda11d3537
3 changed files with 26 additions and 9 deletions

View File

@@ -16,7 +16,6 @@ export const saveSettings =
method: "POST",
data: { settingsPayload, settingsObjectId },
});
console.log(result.data);
dispatch({
type: SETTINGS_OBJECT_FETCHED,
data: result.data,

View File

@@ -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 => {
</Field>
</span>
</p>
<p className="control is-expanded">
<div className="control is-expanded">
<Field
name="hostname"
component="input"
className="input"
placeholder="AirDC++ host IP / hostname"
/>
</p>
validate={hostValidator}>
{({ input, meta }) => (
<div>
<input {...input} type="text" placeholder="AirDC++ hostname" className="input" />
{meta.error && meta.touched && <span className="is-size-7 has-text-danger">{meta.error}</span>}
</div>
)}
</Field>
</div>
<p className="control">
<Field
name="port"

View File

@@ -53,7 +53,7 @@ const AirDCPPSocketContextProvider = ({ children }) => {
} = configuration;
const initializedAirDCPPSocket = new AirDCPPSocket({
protocol: `${host.protocol}`,
hostname: `${host.hostname}`,
hostname: `${host.hostname}:${host.port}`,
});
const socketConnectionInformation = await initializedAirDCPPSocket.connect(