feat: форма обращения сотрудника в HR департамент

Переносит вопросы из Microsoft Forms в собственный интерфейс: компания,
анонимность, ФИО и должность, вид обращения, описание ситуации и предложение.

Поля автора скрываются при анонимном обращении, а не блокируются: требовать ФИО
у анонима — противоречие, а серое неактивное поле выглядит как ошибка формы.

Состояние целиком в useFeedbackForm, правила заполнения — в отдельной чистой
функции validateFeedback: её можно покрыть тестами без React.

Отправки пока нет — по договорённости делаем только UI, submit пишет данные в
консоль (TODO в useFeedbackForm).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-20 18:15:10 +05:00
parent e921062e3b
commit 010f78b138
18 changed files with 739 additions and 0 deletions
+23
View File
@@ -0,0 +1,23 @@
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import { IconSprite } from '@tnsu/ui-kit';
import { App } from './App';
import '@tnsu/ui-kit/styles.css';
import './styles/global.scss';
const rootElement = document.getElementById('root');
if (!rootElement) {
throw new Error('Не найден контейнер #root — проверьте index.html');
}
// React 17 API: ui-kit собран под react@17, поэтому createRoot здесь недоступен.
ReactDOM.render(
<React.StrictMode>
{/* Спрайт с иконками ui-kit монтируется один раз на всё приложение. */}
<IconSprite />
<App />
</React.StrictMode>,
rootElement
);