"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;