From 4859ece60bc019607491080d91c60f9a7ac6bf2b Mon Sep 17 00:00:00 2001 From: nns <278048682+nurdotnet@users.noreply.github.com> Date: Sun, 26 Apr 2026 01:02:29 +0500 Subject: [PATCH] feat(ui): searchable Select component (drop-in) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Заменили нативный работают без правок call site. Дочерние ). Why: справочники быстро растут (поставщики, страны, типы цен) — выбор из длинного списка через нативный select утомителен. Поиск нужен везде. Co-Authored-By: Claude Opus 4.7 (1M context) --- src/food-market.web/src/components/Field.tsx | 152 ++++++++++++++++++- 1 file changed, 149 insertions(+), 3 deletions(-) diff --git a/src/food-market.web/src/components/Field.tsx b/src/food-market.web/src/components/Field.tsx index 5f8c40d..337703e 100644 --- a/src/food-market.web/src/components/Field.tsx +++ b/src/food-market.web/src/components/Field.tsx @@ -1,4 +1,8 @@ -import { useEffect, useState, type InputHTMLAttributes, type SelectHTMLAttributes, type ReactNode, type TextareaHTMLAttributes } from 'react' +import { + Children, isValidElement, useEffect, useMemo, useRef, useState, + type InputHTMLAttributes, type SelectHTMLAttributes, type ReactNode, type TextareaHTMLAttributes, +} from 'react' +import { ChevronDown } from 'lucide-react' import { cn } from '@/lib/utils' import { useOrgSettings } from '@/lib/useOrgSettings' @@ -30,8 +34,150 @@ export function TextArea(props: TextareaHTMLAttributes) { return