import { FC, useState } from 'react' import { useTranslation } from 'react-i18next' import Button from '../../components/Button' import { useCreateGroup, useGetUsers } from './hooks/useUserData' import { useFormik } from 'formik' import { TickCircle } from 'iconsax-react' import { CreateGroupType, UserItemType } from './types/UserTypes' import * as Yup from 'yup' import PageLoading from '../../components/PageLoading' import Input from '../../components/Input' import CheckBoxComponent from '../../components/CheckBoxComponent' import Textarea from '../../components/Textarea' import { useNavigate } from 'react-router-dom' import { Pages } from '../../config/Pages' import { toast } from 'react-toastify' import { ErrorType } from '../../helpers/types' const GroupCreate: FC = () => { const navigate = useNavigate() const { t } = useTranslation('global') const [users, setUsers] = useState([]) const createGroup = useCreateGroup() const getUsers = useGetUsers('') const formik = useFormik({ initialValues: { name: '', description: '', userIds: [] }, validationSchema: Yup.object({ name: Yup.string() .required(t('errors.required')), }), onSubmit: (values) => { if (users.length > 0) { values.userIds = users createGroup.mutate(values, { onSuccess: () => { formik.resetForm() navigate(Pages.users.groupList) }, onError: (error: ErrorType) => { toast.error(error.response?.data?.error?.message[0]) } }) } else { toast.error(t('user.error_count_users')) } } }) const handleAdd = (id: string) => { if (users.includes(id)) { setUsers(users.filter(user => user !== id)) } else { setUsers([...users, id]) } } return (
{t('user.group_add')}
{ getUsers.isPending ? :