import { Box, Divider, IconButton, Stack } from '@mui/material'; import { memo, useEffect, useState } from 'react'; import { DangerOutlinedButton, PrimaryButton } from '../../common/Buttons/Buttons'; import { HeaderContainer, ModalBackdrop, ModalContainer, ModalTitle } from '../../common/Modal/ModalStyled'; import { StyledTextField } from '../../common/StyledTextField'; import { Cancel } from '../../common/icons/icons'; const TITLES = { program: 'Переименование программы', project: 'Переименование проекта' }; // AURORA-1980: target — результат getRenameTarget; onSubmit получает обрезанное название. // Окно само не закрывается после отправки: закрытие/остаток при ошибке решает родитель. const RenameNodeModalComponent = ({ target, isSaving = false, onClose, onSubmit }) => { const [name, setName] = useState(''); useEffect(() => { setName(target?.name ?? ''); }, [target]); if (!target) return null; const isFormValid = name.trim() !== ''; const handleBackdropClick = (e) => { if (e.target === e.currentTarget) onClose(); }; const handleSave = () => { if (!isFormValid || isSaving) return; onSubmit?.(name.trim()); }; return ( {TITLES[target.kind]} setName(e.target.value)} /> Отмена Сохранить ); }; export const RenameNodeModal = memo(RenameNodeModalComponent);