/* * Copyright (C) 2019 CZ.NIC z.s.p.o. (http://www.nic.cz/) * * This is free software, licensed under the GNU General Public License v3. * See /LICENSE for more information. */ import React from "react"; import PropTypes from "prop-types"; import { ForisForm } from "../../form/components/ForisForm"; import WiFiForm from "./WiFiForm"; import ResetWiFiSettings from "./ResetWiFiSettings"; WiFiSettings.propTypes = { ws: PropTypes.object.isRequired, endpoint: PropTypes.string.isRequired, resetEndpoint: PropTypes.string.isRequired, hasGuestNetwork: PropTypes.bool, }; export function WiFiSettings({ ws, endpoint, resetEndpoint, hasGuestNetwork, }) { return ( <> ); } function prepData(formData) { formData.devices.forEach((device, idx) => { formData.devices[idx].channel = device.channel.toString(); }); return formData; } function prepDataToSubmit(formData) { formData.devices.forEach((device, idx) => { delete device.available_bands; formData.devices[idx].channel = parseInt(device.channel); if (!device.enabled) { formData.devices[idx] = { id: device.id, enabled: false }; return; } if (!device.guest_wifi.enabled) formData.devices[idx].guest_wifi = { enabled: false }; }); return formData; } function validator(formData) { const formErrors = formData.devices.map( (device) => { if (!device.enabled) return {}; const errors = {}; if (device.SSID.length > 32) errors.SSID = _("SSID can't be longer than 32 symbols"); if (device.SSID.length === 0) errors.SSID = _("SSID can't be empty"); if (device.password.length < 8) errors.password = _("Password must contain at least 8 symbols"); if (!device.guest_wifi.enabled) return errors; const guest_wifi_errors = {}; if (device.guest_wifi.SSID.length > 32) guest_wifi_errors.SSID = _("SSID can't be longer than 32 symbols"); if (device.guest_wifi.SSID.length === 0) guest_wifi_errors.SSID = _("SSID can't be empty"); if (device.guest_wifi.password.length < 8) guest_wifi_errors.password = _("Password must contain at least 8 symbols"); if (guest_wifi_errors.SSID || guest_wifi_errors.password) { errors.guest_wifi = guest_wifi_errors; } return errors; }, ); return JSON.stringify(formErrors) === "[{},{}]" ? null : formErrors; }