Compare commits

..

No commits in common. "ba1f8a8bd403e15a76708ed6ec8147f429e07594" and "a4000280fa8e6c319bd8ac60d061f873f9c5e7be" have entirely different histories.

2 changed files with 25 additions and 5 deletions

View File

@ -24,8 +24,8 @@ export const ProjectsApi = {
return api.patch(`/projects/${projectId}/smeta/${year}`, data).then((r) => r.data);
},
addYear: (projectId) => {
return api.post(`/projects/${projectId}/year`).then((r) => r.data);
addYear: (projectId, year) => {
return api.post(`/projects/${projectId}/year`, { year }).then((r) => r.data);
},
delete: (id) => {

View File

@ -52,6 +52,7 @@ export default function TaskPage() {
const [projects, setProjects] = useState([]);
const [isProjectData, setIsProjectData] = useState(false);
const [addYearModalOpen, setAddYearModalOpen] = useState(false);
const [newProjectYear, setNewProjectYear] = useState('');
const [isAddingYear, setIsAddingYear] = useState(false);
const [dataReloadKey, setDataReloadKey] = useState(0);
@ -124,15 +125,22 @@ export default function TaskPage() {
const handleCloseAddYearModal = () => {
if (isAddingYear) return;
setAddYearModalOpen(false);
setNewProjectYear('');
};
const handleAddProjectYear = async () => {
const year = Number(newProjectYear);
if (!Number.isInteger(year) || year < 1) {
toast.error('Введите корректный год');
return;
}
try {
setIsAddingYear(true);
await ProjectsApi.addYear(id);
toast.success(`Год успешно добавлен`);
await ProjectsApi.addYear(id, year);
toast.success(`Год ${year} успешно добавлен`);
setAddYearModalOpen(false);
setNewProjectYear('');
setDataReloadKey((key) => key + 1);
} catch (error) {
toast.error(error?.response?.data?.detail || error?.response?.data?.message || 'Не удалось добавить год');
@ -235,7 +243,19 @@ export default function TaskPage() {
</>
}>
<FormControl fullWidth>
<FormLabel>Вы точно хотите добавить год?</FormLabel>
<FormLabel required>Год</FormLabel>
<TextField
autoFocus
size='small'
type='number'
placeholder='Введите год'
value={newProjectYear}
disabled={isAddingYear}
onChange={(event) => setNewProjectYear(event.target.value)}
onKeyDown={(event) => {
if (event.key === 'Enter') handleAddProjectYear();
}}
/>
</FormControl>
</Modal>
)}