Merge pull request 'fix-form-4' (#56) from fix-form-4 into test

Reviewed-on: #56
This commit is contained in:
PotapovaA 2026-07-29 14:57:44 +03:00
commit 5498bf4935
5 changed files with 22 additions and 15 deletions

View File

@ -101,6 +101,18 @@ const EditCell = memo(({ refCell, onChange, disabled, value, tableId, cellId, ta
return () => observer.disconnect();
}, [state.currentValue]);
useEffect(() => {
// Небольшая задержка для гарантии, что DOM полностью готов
const timeoutId = setTimeout(() => {
if (textareaRef.current && !disabled) {
textareaRef.current.focus();
textareaRef.current.select();
}
}, 50);
return () => clearTimeout(timeoutId);
}, [disabled]);
const handleSave = useCallback(() => {
const { currentValue } = state;

View File

@ -77,6 +77,7 @@ const RealtimeTable = ({ formType, formId, sheetName, direction, year }) => {
error: wsError,
updateCell: contextUpdateCell,
addRow: contextAddRow,
deleteRow: contextDeleteRow,
startEditing: contextStartEditing,
addProgram: contextAddProgram,
addProject: contextAddProject,

View File

@ -84,12 +84,8 @@ export function updateCells(data, newRows) {
) {
if (newData && typeof newData === "object") {
Object.keys(newData).forEach((key) => {
if (row.data && row.data[key]) {
if (typeof row.data[key] === "object") {
if (row.data && row.data[key] !== undefined) {
row.data[key] = deepMerge(row.data[key], newData[key]);
} else {
row.data[key] = newData[key];
}
} else if (row[key]) {
row[key] = newData[key];
}
@ -112,7 +108,6 @@ export function updateCells(data, newRows) {
findAndUpdate(updatedRows);
});
return updatedRows;
}

View File

@ -53,5 +53,6 @@ export const SHEET_NAME = {
"AHR_UTILITY": "АХР Коммунальные услуги",
"AHR_SECURITY": "АХР Безопасность",
"OTCH9F": "Отчет 9ф",
"SMETA": "Смета"
"SMETA": "Смета",
'STRUCTURE': 'Структура'
};

View File

@ -248,11 +248,9 @@ export default function ProjectsPage() {
getItemId={(project) => project.id}
getItemTitle={(project) => project.name || 'Проект'}
extraActions={
user.role_id === ROLES_NAME_ID.admin && (
<PrimaryButton onClick={openModal} startIcon={<WhitePlus />} height='2.5rem' >
Создать проект
</PrimaryButton>
)
}
filterActions={
<Box sx={{ display: 'flex', gap: 1.5, flexWrap: 'wrap', alignItems: 'center', height: '2.5rem' }}>