import React, { useRef, useState } from 'react'; import { Button, Drawer, Form, Input, InputRef, Typography } from 'antd'; import { fetchTeams } from '@features/teams/teamSlice'; import { useAppDispatch } from '@/hooks/useAppDispatch'; import { useTranslation } from 'react-i18next'; import logger from '@/utils/errorLogger'; import { teamsApiService } from '@/api/teams/teams.api.service'; interface AddTeamDrawerProps { isDrawerOpen: boolean; onClose: () => void; reloadTeams: () => void; } const AddTeamDrawer: React.FC = ({ isDrawerOpen, onClose, reloadTeams }) => { const { t } = useTranslation('admin-center/teams'); const dispatch = useAppDispatch(); const [form] = Form.useForm(); const [creating, setCreating] = useState(false); const addTeamNameInputRef = useRef(null); const handleFormSubmit = async (values: any) => { if (!values.name || values.name.trim() === '') return; try { setCreating(true); const newTeam = { name: values.name, }; const res = await teamsApiService.createTeam(newTeam); if (res.done) { onClose(); reloadTeams(); dispatch(fetchTeams()); } } catch (error) { logger.error('Error adding team', error); } finally { setCreating(false); } form.resetFields(); }; return ( {t('drawerTitle')} } open={isDrawerOpen} destroyOnClose afterOpenChange={() => { setTimeout(() => { addTeamNameInputRef.current?.focus(); }, 100); }} onClose={onClose} >
); }; export default AddTeamDrawer;