diff --git a/client/src/components/TableFieldMultiSelect.tsx b/client/src/components/TableFieldMultiSelect.tsx index 92ba430..c635d23 100644 --- a/client/src/components/TableFieldMultiSelect.tsx +++ b/client/src/components/TableFieldMultiSelect.tsx @@ -142,102 +142,100 @@ export default function TableFieldMultiSelect({ } return ( - - -
- 0 ? `${selectedLabels.length} выбрано` : placeholder || 'Выберите значения...')} - onChange={(e) => { - setSearchTerm(e.target.value); - setIsOpen(true); - }} - onFocus={() => { - setSearchTerm(''); - setIsOpen(true); - }} - data-testid={`select-table-multi-${fieldCode}`} - /> -
-
- e.preventDefault()} - onInteractOutside={(e) => { - if (inputRef.current && inputRef.current.contains(e.target as Node)) { - e.preventDefault(); - } - }} - > -
{ - const el = e.currentTarget; - const isUp = e.deltaY < 0; - const isDown = e.deltaY > 0; - const atTop = el.scrollTop <= 0; - const atBottom = el.scrollTop + el.clientHeight >= el.scrollHeight - 1; - if ((isUp && atTop) || (isDown && atBottom)) return; - e.preventDefault(); - el.scrollTop += e.deltaY; +
+ + +
+ 0 ? `${selectedLabels.length} выбрано` : placeholder || 'Выберите значения...')} + onChange={(e) => { + setSearchTerm(e.target.value); + setIsOpen(true); + }} + onFocus={() => { + setSearchTerm(''); + setIsOpen(true); + }} + data-testid={`select-table-multi-${fieldCode}`} + /> +
+
+ e.preventDefault()} + onInteractOutside={(e) => { + if (inputRef.current && inputRef.current.contains(e.target as Node)) { + e.preventDefault(); + } }} > - {hasTree ? ( - - ) : ( -
    - {filtered.map((row) => { - const rowId = row.id.toString(); - const label = row.values[displayColumnIndex!] || row.values[0] || rowId; - return ( -
  • { e.preventDefault(); toggle(rowId); }} - > - - - {label} - - ); - })} - {filtered.length === 0 && ( -
  • Нет совпадений
  • - )} - - )} - - - {selectedLabels.length > 0 && ( -
    - {selectedLabels.map((label, idx) => { - const rowId = selectedValues[idx]; - return ( -
    - {label} - -
    - ); - })} -
    - )} - +
    { + const el = e.currentTarget; + const isUp = e.deltaY < 0; + const isDown = e.deltaY > 0; + const atTop = el.scrollTop <= 0; + const atBottom = el.scrollTop + el.clientHeight >= el.scrollHeight - 1; + if ((isUp && atTop) || (isDown && atBottom)) return; + e.preventDefault(); + el.scrollTop += e.deltaY; + }} + > + {hasTree ? ( + + ) : ( +
      + {filtered.map((row) => { + const rowId = row.id.toString(); + const label = row.values[displayColumnIndex!] || row.values[0] || rowId; + return ( +
    • { e.preventDefault(); toggle(rowId); }} + > + +
    + {label} + + ); + })} + {filtered.length === 0 && ( +
  • Нет совпадений
  • + )} + + )} + + + + {selectedLabels.map((label, idx) => { + const rowId = selectedValues[idx]; + return ( +
    + {label} + +
    + ); + })} + ); }