From 06ad47c1af185d9e6b025c78fb18c054b148c3b9 Mon Sep 17 00:00:00 2001 From: Naresh Bhatia Date: Mon, 31 Mar 2025 23:38:38 -0400 Subject: [PATCH] convert DropdownMenu to use CSS --- src/app/routes/order-form/OrderForm.tsx | 82 ++++++-- src/app/routes/order-form/route.tsx | 4 +- src/components/TreeSelect/TreeSelect.tsx | 11 +- src/components/ui/dropdown-menu.module.css | 218 +++++++++++++++++++++ src/components/ui/dropdown-menu.tsx | 47 ++--- src/data/orders.ts | 17 +- src/types/schema.ts | 9 +- src/types/types.ts | 9 +- 8 files changed, 324 insertions(+), 73 deletions(-) create mode 100644 src/components/ui/dropdown-menu.module.css diff --git a/src/app/routes/order-form/OrderForm.tsx b/src/app/routes/order-form/OrderForm.tsx index 9961010..7c41151 100644 --- a/src/app/routes/order-form/OrderForm.tsx +++ b/src/app/routes/order-form/OrderForm.tsx @@ -13,8 +13,10 @@ import { } from '@/components/ui/command'; import { DropdownMenu, - DropdownMenuCheckboxItem, DropdownMenuContent, + DropdownMenuItem, + DropdownMenuRadioGroup, + DropdownMenuRadioItem, DropdownMenuTrigger, } from '@/components/ui/dropdown-menu'; import { @@ -44,6 +46,8 @@ import { inputOrderSchema } from '@/types'; import { zodResolver } from '@hookform/resolvers/zod'; import { useForm } from 'react-hook-form'; +const SELECT_PRODUCT_PLACEHOLDER = 'Select a product'; + export interface OrderFormProps { existingOrder?: InputOrder; products: Product[]; @@ -72,9 +76,9 @@ export function OrderForm({ `${product.manufacturer} - ${product.name}`; const getProductIdDisplayText = (productId: string | undefined) => { - if (productId === undefined) return 'Select product'; + if (productId === undefined) return undefined; const product = products.find((product) => product.id === productId); - return product ? getProductDisplayText(product) : productId; + return product ? getProductDisplayText(product) : undefined; }; return ( @@ -93,7 +97,7 @@ export function OrderForm({