"use client"; import Stack from "@mui/material/Stack"; import Box from "@mui/material/Box"; import Card from "@mui/material/Card"; import CardContent from "@mui/material/CardContent"; import Grid from "@mui/material/Grid"; import TextField from "@mui/material/TextField"; import Typography from "@mui/material/Typography"; import { useTranslation } from "react-i18next"; import { Controller, useFieldArray, useFormContext } from "react-hook-form"; import Link from "next/link"; import React from "react"; import MailField from "../MailField/MailField"; import { MailSetting } from "@/app/api/mail"; import { MailSave } from "@/app/api/mail/actions"; import { Checkbox, IconButton, InputAdornment } from "@mui/material"; import { Visibility, VisibilityOff } from "@mui/icons-material"; interface Props { isActive: boolean; } const SettingDetails: React.FC = ({ isActive }) => { const requiredFields = ["host", "port", "username"] const { t } = useTranslation(); const { register, formState: { errors }, control, watch } = useFormContext(); const { fields } = useFieldArray({ control, name: "settings" }) const [showSMTPPassword, setShowSMTPPassword] = React.useState(false) const handleClickShowPassword = () => setShowSMTPPassword((show) => !show); const handleMouseDownPassword = (event: React.MouseEvent) => { event.preventDefault(); }; return ( {t("Settings")} { fields.map((field, index) => ( {`${t(field.name)}${requiredFields.some(name => field.name.toLowerCase().includes(name)) ? "*" : ""}`} { field.name.toLowerCase().includes("password") === true ? {showSMTPPassword ? : } ), }} fullWidth {...register(`settings.${index}.value`)} /> : field.type.toLowerCase() === "boolean" ? : field.type.toLowerCase() === "integer" ? field.name.toLowerCase().includes(name)) })} error={Boolean( errors.settings && errors.settings.length && errors.settings.length > index && errors.settings[index]?.value )} /> : field.name.toLowerCase().includes(name)) })} error={Boolean( errors.settings && errors.settings.length && errors.settings.length > index && errors.settings[index]?.value )} /> } )) } ); }; export default SettingDetails;