diff --git a/src/pages/Cutting.tsx b/src/pages/Cutting.tsx index 3ae4e93..2a10f57 100644 --- a/src/pages/Cutting.tsx +++ b/src/pages/Cutting.tsx @@ -1,6 +1,6 @@ import { useEffect, useMemo, useState } from 'react'; import { Link, useOutletContext } from 'react-router-dom'; -import { AlertTriangle, ClipboardList, Download, Layers3, Package, Palette, RotateCcw, Ruler, Save as SaveIcon, Scissors, Search, Settings2 } from 'lucide-react'; +import { AlertTriangle, ClipboardList, Download, Layers3, Package, Palette, RotateCcw, Ruler, Save as SaveIcon, Scissors, Search, Settings2, X } from 'lucide-react'; import DateRangePicker from '../components/DateRangePicker'; import PaginationControls from '../components/PaginationControls'; import RefreshStatus from '../components/RefreshStatus'; @@ -264,6 +264,19 @@ const Cutting = () => { setCorrectionPage(1); }, [correctionIssueFilter, dateRange, targetCoverageDays]); + useEffect(() => { + if (!isSettingsOpen) return undefined; + + const closeOnEscape = (event: KeyboardEvent) => { + if (event.key === 'Escape') { + setIsSettingsOpen(false); + } + }; + + document.addEventListener('keydown', closeOnEscape); + return () => document.removeEventListener('keydown', closeOnEscape); + }, [isSettingsOpen]); + const updateFamilyYield = (familyKey: CutFamilyKey, value: string) => { const parsedValue = Number(value); setCuttingSettings(current => { @@ -358,10 +371,17 @@ const Cutting = () => { return OK; } + const issueSummary = row.issues.map(issue => issueLabels[issue]).join(', '); + return ( - - - {row.issues.map(issue => issueLabels[issue]).join(', ')} + + + + {row.issues.length === 1 ? issueLabels[row.issues[0]] : `${row.issues.length} pendências`} + ); }; @@ -410,7 +430,17 @@ const Cutting = () => { {isSettingsOpen && ( -
+
setIsSettingsOpen(false)} + > +
event.stopPropagation()} + >

Regras de Corte

@@ -418,23 +448,34 @@ const Cutting = () => { {configuredYieldCount} rendimentos configurados · {productOverrideCount} correções de produto

- - +
+ + + +
{saveStatus === 'saved' && (

Regras salvas no banco de dados.

@@ -584,6 +625,7 @@ const Cutting = () => {
)}
+
)}