import Input from '@/components/Input' import Select from '@/components/Select' import Table from '@/components/Table' import { ColumnType } from '@/components/types/TableTypes' import { FC, useState } from 'react' import { useTranslation } from 'react-i18next' import Button from '@/components/Button' import { TickCircle } from 'iconsax-react' import { useForm } from 'react-hook-form' import { AddressData, CreateAddressType } from './types/Types' import { useGetDomains } from '../domain/hooks/useDomainData' import { yupResolver } from "@hookform/resolvers/yup" import * as yup from "yup" import { useCreateAddress, useGetAddress } from './hooks/useAddressData' import { toast } from '@/components/Toast' import { ErrorType } from '@/helpers/types' import ProgressBarEmail from './components/ProgressBarEmail' import ToggleStatus from './components/ToggleStatus' const Address: FC = () => { const { t } = useTranslation() const schema = yup.object().shape({ title: yup.string().required(t('errors.required')), username: yup.string().required(t('errors.required')), password: yup.string().required(t('errors.required')), domainId: yup.string().required(t('errors.required')), }) const [search, setSearch] = useState('') const [status, setStatus] = useState('all') const { data: domain } = useGetDomains() const { mutate: createAddress, isPending } = useCreateAddress() const { data: addresses, isPending: isPendingAddress } = useGetAddress(search, status) const { register, handleSubmit, formState: { errors }, } = useForm({ resolver: yupResolver(schema), defaultValues: { domainId: domain?.data?.domain?.id || '', } }) const columns: ColumnType[] = [ { title: t('setting.address_title'), key: 'title', width: '200px' }, { title: t('setting.email'), key: 'email', width: '300px', render: (item: AddressData) => (
{item.emailAddress}
) }, { title: t('setting.quota'), key: 'quota', width: '300px', render: (item: AddressData) => { return ( ) } }, { title: t('setting.status'), key: 'status', width: '120px', align: 'center', render: (item: AddressData) => (
) } ] const statusOptions = [ { value: 'all', label: 'همه' }, { value: 'active', label: t('setting.active') }, { value: 'inactive', label: t('setting.inactive') } ] const onSubmit = (params: CreateAddressType) => { createAddress(params, { onSuccess: (data) => { toast(data?.data?.message, 'success') }, onError: (error: ErrorType) => { toast(error.response?.data?.error?.message[0], 'error') } }) } return (
setSearch(e)} />
console.log('Page:', page) }} />
{t('setting.add_address')}
{/*
{t('setting.status')}
*/}
@ {domain?.data?.domain?.name}
رمز عبور می‌بایست:
  • حداقل ۸ کاراکتر باشد
  • ترکیبی از حروف کوچک و بزرگ باشد
  • شامل اعداد باشد
  • شامل کاراکتر های خاص (نماد ها) باشد
) } export default Address