import { Field, Form, Formik } from "formik"; import FormGroup from "../components/FormGroup"; import type { WifiSettingValues } from "../../../types/types"; import { useWifiAndModem } from "../../../hooks/useCameraWifiandModem"; import { useState } from "react"; import { faEyeSlash, faEye } from "@fortawesome/free-solid-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { toast, Toaster } from "sonner"; const WiFiSettingsForm = () => { const [showPwd, setShowPwd] = useState(false); const { wifiQuery, wifiMutation } = useWifiAndModem(); const wifiSSID = wifiQuery?.data?.propSSID?.value; const wifiPassword = wifiQuery?.data?.propPassword?.value; const initialValues = { ssid: wifiSSID ?? "", password: wifiPassword ?? "", encryption: "WPA2", }; const validatePassword = (password: string) => { if (password.length < 8) { toast.error("Password must be at least 8 characters long", { id: "password" }); return "Password must be at least 8 characters long"; } }; const handleSubmit = async (values: WifiSettingValues) => { const wifiConfig = { id: "ModemAndWifiManager-wifi", fields: [ { property: "propSSID", value: values.ssid, }, { property: "propPassword", value: values.password, }, ], }; await wifiMutation.mutateAsync(wifiConfig); }; return ( <> {({ isSubmitting }) => (
setShowPwd((s) => !s)} icon={showPwd ? faEyeSlash : faEye} />
)}
); }; export default WiFiSettingsForm;