refactor: LeaveNotice переименован в общий FormNotice

Плашка «Примечание» с правилами нужна не только заявлениям на отпуск —
следующей её получает увольнение. Имя LeaveNotice вводило бы в
заблуждение, поэтому компонент стал нейтральным FormNotice; поведение
не меняется.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Тимур Городецкий
2026-10-29 10:59:13 +05:00
parent 9fd94e0adf
commit 16699ef2e2
9 changed files with 16 additions and 15 deletions
@@ -13,7 +13,7 @@ import {
SubmitActions, SubmitActions,
getDraftDeleteHandler, getDraftDeleteHandler,
useRequestSubmit, useRequestSubmit,
LeaveNotice FormNotice
} from '../../shared/ui'; } from '../../shared/ui';
import { import {
composeRemoveRowRule, composeRemoveRowRule,
@@ -335,7 +335,7 @@ const UnpaidLeaveForm: React.FC<IRequestFormProps> = ({
)} )}
{submit.error && <Alert variant="err">{submit.error}</Alert>} {submit.error && <Alert variant="err">{submit.error}</Alert>}
<LeaveNotice title={NOTICE_TITLE} items={NOTICE_ITEMS} /> <FormNotice title={NOTICE_TITLE} items={NOTICE_ITEMS} />
<FormModeProvider readOnly={readOnly}> <FormModeProvider readOnly={readOnly}>
<RequestSection {...sectionProps} /> <RequestSection {...sectionProps} />
@@ -9,7 +9,7 @@ import {
FormModeProvider, FormModeProvider,
PrintSplitButton, PrintSplitButton,
OrgLetterhead, OrgLetterhead,
LeaveNotice, FormNotice,
PrintSignature PrintSignature
} from '../../shared/ui'; } from '../../shared/ui';
import { import {
@@ -170,7 +170,7 @@ const UnpaidLeaveView: React.FC<IUnpaidLeaveViewProps> = ({ context, itemId, for
</div> </div>
} }
> >
<LeaveNotice title={NOTICE_TITLE} items={NOTICE_ITEMS} /> <FormNotice title={NOTICE_TITLE} items={NOTICE_ITEMS} />
<FormModeProvider readOnly> <FormModeProvider readOnly>
<RequestSection {...sectionProps} /> <RequestSection {...sectionProps} />
</FormModeProvider> </FormModeProvider>
@@ -95,7 +95,7 @@ export const SUBSTITUTE_PLACEHOLDER = 'Начните вводить Ф.И.О.
*/ */
export const MIN_NOTICE_DAYS = 14; export const MIN_NOTICE_DAYS = 14;
/** Памятка вверху формы и просмотра (см. shared/ui/LeaveNotice). Текст — по просьбе HR. */ /** Памятка вверху формы и просмотра (см. shared/ui/FormNotice). Текст — по просьбе HR. */
export const NOTICE_TITLE = 'Памятка'; export const NOTICE_TITLE = 'Памятка';
export const NOTICE_ITEMS: string[] = [ export const NOTICE_ITEMS: string[] = [
'После согласования заявления его необходимо распечатать с портала (кнопка «Печать» на странице заявки), ' + 'После согласования заявления его необходимо распечатать с портала (кнопка «Печать» на странице заявки), ' +
@@ -13,7 +13,7 @@ import {
SubmitActions, SubmitActions,
getDraftDeleteHandler, getDraftDeleteHandler,
useRequestSubmit, useRequestSubmit,
LeaveNotice FormNotice
} from '../../shared/ui'; } from '../../shared/ui';
import { import {
composeRemoveRowRule, composeRemoveRowRule,
@@ -354,7 +354,7 @@ const VacationForm: React.FC<IRequestFormProps> = ({
)} )}
{submit.error && <Alert variant="err">{submit.error}</Alert>} {submit.error && <Alert variant="err">{submit.error}</Alert>}
<LeaveNotice title={NOTICE_TITLE} items={NOTICE_ITEMS} /> <FormNotice title={NOTICE_TITLE} items={NOTICE_ITEMS} />
<FormModeProvider readOnly={readOnly}> <FormModeProvider readOnly={readOnly}>
<RequestSection {...sectionProps} /> <RequestSection {...sectionProps} />
@@ -10,7 +10,7 @@ import {
FormModeProvider, FormModeProvider,
PrintSplitButton, PrintSplitButton,
OrgLetterhead, OrgLetterhead,
LeaveNotice, FormNotice,
PrintSignature PrintSignature
} from '../../shared/ui'; } from '../../shared/ui';
import { import {
@@ -229,7 +229,7 @@ const VacationView: React.FC<IVacationViewProps> = ({ context, itemId, formKey,
</div> </div>
} }
> >
<LeaveNotice title={NOTICE_TITLE} items={NOTICE_ITEMS} /> <FormNotice title={NOTICE_TITLE} items={NOTICE_ITEMS} />
<FormModeProvider readOnly> <FormModeProvider readOnly>
<RequestSection {...sectionProps} /> <RequestSection {...sectionProps} />
</FormModeProvider> </FormModeProvider>
@@ -87,7 +87,7 @@ export const MIN_NOTICE_DAYS = 7;
export const MAX_DAYS = 24; export const MAX_DAYS = 24;
/** /**
* Примечание вверху формы и просмотра (см. shared/ui/LeaveNotice). Текст — от HR, * Примечание вверху формы и просмотра (см. shared/ui/FormNotice). Текст — от HR,
* дословно. «Одну календарную неделю» — это MIN_NOTICE_DAYS: поменяли срок — поправьте и текст. * дословно. «Одну календарную неделю» — это MIN_NOTICE_DAYS: поменяли срок — поправьте и текст.
* Правило про часть не менее 14 дней только показываем, а не проверяем: форма не знает, * Правило про часть не менее 14 дней только показываем, а не проверяем: форма не знает,
* брал ли сотрудник уже часть отпуска. * брал ли сотрудник уже часть отпуска.
@@ -1,6 +1,6 @@
import * as React from 'react'; import * as React from 'react';
import { Alert } from '@tnsu/ui-kit'; import { Alert } from '@tnsu/ui-kit';
import styles from './LeaveNotice.module.scss'; import styles from './FormNotice.module.scss';
interface Props { interface Props {
/** Заголовок плашки, например «Примечание» или «Памятка». */ /** Заголовок плашки, например «Примечание» или «Памятка». */
@@ -10,12 +10,13 @@ interface Props {
} }
/** /**
* Плашка с правилами для заявлений на отпуск (трудовой и без содержания). * Плашка с правилами вверху формы и её просмотра — «Примечание», «Памятка»
* Тексты у форм разные, поэтому приходят из model.ts каждой формы. * (отпуск, отпуск без содержания, увольнение). Тексты у форм разные — от
* кадров, дословно, — поэтому приходят из model.ts каждой формы.
* Вариант warn, а не info: нейтральная плашка терялась на фоне формы. * Вариант warn, а не info: нейтральная плашка терялась на фоне формы.
* На печать не выводится — это подсказка для сотрудника, а не часть заявления. * На печать не выводится — это подсказка для сотрудника, а не часть заявления.
*/ */
export const LeaveNotice: React.FC<Props> = ({ title, items }) => { export const FormNotice: React.FC<Props> = ({ title, items }) => {
if (items.length === 0) return null; if (items.length === 0) return null;
return ( return (
@@ -60,6 +60,6 @@ export { issueLabels } from './FieldIssues/fieldIssues';
export { getDraftDeleteHandler } from './SubmitActions/getDraftDeleteHandler'; export { getDraftDeleteHandler } from './SubmitActions/getDraftDeleteHandler';
export { InitiatorLine } from './InitiatorLine/InitiatorLine'; export { InitiatorLine } from './InitiatorLine/InitiatorLine';
export type { IInitiatorLineProps } from './InitiatorLine/InitiatorLine'; export type { IInitiatorLineProps } from './InitiatorLine/InitiatorLine';
export { LeaveNotice } from './LeaveNotice/LeaveNotice'; export { FormNotice } from './FormNotice/FormNotice';
export { useRequestSubmit } from './useRequestSubmit'; export { useRequestSubmit } from './useRequestSubmit';
export type { IRequestSubmit, SubmitKind } from './useRequestSubmit'; export type { IRequestSubmit, SubmitKind } from './useRequestSubmit';