diff --git a/openspec/changes/document-comments-ui/tasks.md b/openspec/changes/document-comments-ui/tasks.md new file mode 100644 index 0000000..c6d2a85 --- /dev/null +++ b/openspec/changes/document-comments-ui/tasks.md @@ -0,0 +1,20 @@ +## 1. Данные (arm-core `web/`) + +- [x] 1.1 `types/api.ts`: `CommentOut`; `services/api/documents.ts`: `getComments`, `postComment` с типом ответа. +- [x] 1.2 `utils/dates.ts`: `formatMoscowDateTime` + тест. +- [x] 1.3 `widgets/FilesDrawer/documentRows.ts`: `commentsCount` в строке + тесты. + +## 2. Экран документа [41] + +- [x] 2.1 `widgets/DocumentComments/`: `useDocumentComments`, `CommentsList`, `DocumentCommentsDrawer`. +- [x] 2.2 `layouts/DocumentPage.tsx`: кнопка «Комментарии (N)» и боковая панель; `CommentModal` удалён. + +## 3. Панель «Первичные документы» [39-01] + +- [x] 3.1 `widgets/DocumentComments/CommentsPopover.tsx`; `widgets/FilesDrawer/FilesList.tsx` — кнопка в колонке действий. + +## 4. Проверки + +- [x] 4.1 Сценарии в браузере (1600×1000): добавление и перезагрузка, ошибка 403, многострочный и длинный текст, счётчик и + поповер в панели, пустой поповер, клики не открывают документ. +- [x] 4.2 `npm test`, `npm run lint`, `make web-check`, `openspec validate document-comments-ui --strict`. diff --git a/web/src/widgets/DocumentComments/DocumentCommentsDrawer.tsx b/web/src/widgets/DocumentComments/DocumentCommentsDrawer.tsx index ece504e..e6ccb97 100644 --- a/web/src/widgets/DocumentComments/DocumentCommentsDrawer.tsx +++ b/web/src/widgets/DocumentComments/DocumentCommentsDrawer.tsx @@ -39,11 +39,12 @@ export function DocumentCommentsDrawer({ documentId, open, onClose, onAdded }: D + // отступ 28: счётчик символов showCount рисуется под полем и наезжал бы на кнопку +
setText(e.target.value)} diff --git a/web/src/widgets/FilesDrawer/FilesList.tsx b/web/src/widgets/FilesDrawer/FilesList.tsx index 3e300d0..5dfa9d4 100644 --- a/web/src/widgets/FilesDrawer/FilesList.tsx +++ b/web/src/widgets/FilesDrawer/FilesList.tsx @@ -139,7 +139,8 @@ export function FilesList({ title: '', dataIndex: 'action', render: (_, r) => ( -
+ // кнопка с числом комментариев шире пустой — прижимаем вправо, чтобы «Удалить» стояла столбцом +
{r.documentId && }