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:
@@ -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
|
||||
);
|
||||
Reference in New Issue
Block a user