/** * Responsive toolbar for filtering, searching, and sorting quotes. */ import { memo } from '@wordpress/element'; import { __ } from '@wordpress/i18n'; import { Flex, FlexItem, FlexBlock, Button, DropdownMenu, TextControl, } from '@wordpress/components'; import { search, close, funnel } from '@wordpress/icons'; import { useWindowSize } from '../../shared/hooks'; import type { FilterType, SortType } from './hooks/useQuoteFiltering'; const SORT_LABELS: Record = { price_asc: __('Price: Low → High', 'parcel2go-shipping'), price_desc: __('Price: High → Low', 'parcel2go-shipping'), delivery_asc: __('Delivery: Soonest first', 'parcel2go-shipping'), delivery_desc: __('Delivery: Latest first', 'parcel2go-shipping'), }; export interface QuotesToolbarProps { filter: FilterType; setFilter: (f: FilterType) => void; queryValue: string; setQueryValue: (v: string) => void; isSearchOpen: boolean; handleOpenSearch: () => void; handleCloseSearch: () => void; searchInputRef: React.RefObject; sortBy: SortType | null; setSortBy: (s: SortType | null) => void; hasDDPQuotes: boolean; } function QuotesToolbarInner({ filter, setFilter, queryValue, setQueryValue, isSearchOpen, handleOpenSearch, handleCloseSearch, searchInputRef, sortBy, setSortBy, hasDDPQuotes, }: QuotesToolbarProps) { const { isSmOrUp } = useWindowSize(); if (isSearchOpen) { return ( {hasDDPQuotes && ( )} {/* Search + Sort icons / badge */}