feat: испытательный срок в подборе, дата приёма по приезду, HR-формы для тестировщиков
Tests / frontend-test (push) Successful in 1m19s

This commit is contained in:
Тимур Городецкий
2026-09-24 16:10:54 +05:00
parent b7bd8537a4
commit 17e7c634d5
18 changed files with 303 additions and 84 deletions
@@ -9,6 +9,7 @@ import { getFormComponent } from '../../forms/registry';
import { IRequestType } from '../../models/types';
import { emitRequestsChanged } from '../../shared/requestEvents';
import { confirmDiscardFormChanges, markFormClean } from '../../shared/unsavedChanges';
import { useIsTester } from '../../shared/useIsTester';
export interface ISubmitFeatureProps {
context: WebPartContext;
@@ -57,6 +58,7 @@ const SubmitFeature: React.FC<ISubmitFeatureProps> = ({
}, [activeCategoryId]);
const requests = getRequestsByCategory(activeCategoryId);
const isTester = useIsTester();
// Возврат к плиткам закрывает форму и теряет введённое (раздел остаётся
// смонтированным, но состояние формы живёт в самом FormComponent). Спрашиваем,
@@ -73,8 +75,14 @@ const SubmitFeature: React.FC<ISubmitFeatureProps> = ({
const renderSelected = (request: IRequestType): React.ReactNode => {
const FormComponent = getFormComponent(request.id);
// Форма ещё не реализована — показываем заглушку.
if (!FormComponent) {
// Формы «в разработке» открыты только группе «Тестирование» — плитка у
// остальных задизейблена, но форму можно открыть и прямой ссылкой (rptype).
if (request.comingSoon && isTester === undefined) {
return <div className={styles.loading}>Загрузка формы…</div>;
}
// Форма ещё не реализована или пока закрыта для этого пользователя — заглушка.
if (!FormComponent || (request.comingSoon && !isTester)) {
return (
<div className={styles.formPlaceholder}>
<button type="button" className={styles.backButton} onClick={handleBack}>