feat: added split print button
Tests / frontend-test (push) Successful in 4m15s

This commit is contained in:
Тимур Городецкий
2026-08-27 10:09:05 +05:00
parent 5a5e43e5c2
commit 6172321710
20 changed files with 92 additions and 93 deletions
@@ -2,7 +2,7 @@ import * as React from 'react';
import { useState, useEffect, useMemo, useCallback } from 'react';
import type { WebPartContext } from '@microsoft/sp-webpart-base';
import styles from './ClearanceView.module.scss';
import { Alert, Button, FormCard, InitiatorLine, FormModeProvider, PrintButton, PrintOrgSelect, OrgLetterhead } from '../../shared/ui';
import { Alert, Button, FormCard, InitiatorLine, FormModeProvider, PrintSplitButton, OrgLetterhead } from '../../shared/ui';
import {
ApproverService,
DecisionPanel,
@@ -65,7 +65,7 @@ const ClearanceView: React.FC<IClearanceViewProps> = ({ context, itemId, formKey
const [lockedWriteOffs, setLockedWriteOffs] = useState<Set<string>>(new Set());
const [saveState, setSaveState] = useState<SaveState>('idle');
// Какая из организаций сотрудника (см. OrganizationField) идёт в печать —
// выбор в тулбаре через PrintOrgSelect, по умолчанию первая.
// выбор в тулбаре через PrintSplitButton, по умолчанию первая.
const [printOrgIndex, setPrintOrgIndex] = useState<number>(0);
const [saveErrorMessage, setSaveErrorMessage] = useState<string>('');
@@ -263,8 +263,7 @@ const ClearanceView: React.FC<IClearanceViewProps> = ({ context, itemId, formKey
return (
<div>
<div className={`${styles.toolbar} rp-no-print`}>
<PrintOrgSelect value={data.Organization} selectedIndex={printOrgIndex} onChange={setPrintOrgIndex} />
<PrintButton />
<PrintSplitButton value={data.Organization} selectedIndex={printOrgIndex} onChange={setPrintOrgIndex} />
</div>
{canEditAnything && (
@@ -124,7 +124,7 @@ export interface ISectionProps {
* отдельный обработчик. Если не передан (режим чтения) — правка через set.
*/
onEmployeeChange?: (login: string) => void;
/** Индекс организации для печати (см. shared/ui/PrintOrgSelect и OrganizationField.printIndex). */
/** Индекс организации для печати (см. shared/ui/PrintSplitButton и OrganizationField.printIndex). */
printOrgIndex?: number;
}