| 
                        1234567891011121314151617181920212223242526272829303132333435363738394041 | 
                        - 'use client'
 - import type { FC } from 'react'
 - import React from 'react'
 - import cn from 'classnames'
 - import {
 -   MagnifyingGlassIcon,
 - } from '@heroicons/react/24/solid'
 - import { useTranslation } from 'react-i18next'
 - 
 - type Props = {
 -   className?: string
 -   value: string
 -   onChange: (v: string) => void
 - }
 - 
 - const Search: FC<Props> = ({
 -   className,
 -   value,
 -   onChange,
 - }) => {
 -   const { t } = useTranslation()
 - 
 -   return (
 -     <div className={cn(className, 'flex relative')}>
 -       <div className="pointer-events-none absolute inset-y-0 left-0 flex items-center pl-3">
 -         <MagnifyingGlassIcon className="h-5 w-5 text-gray-400" aria-hidden="true" />
 -       </div>
 -       <input
 -         type="text"
 -         name="query"
 -         className="block w-0 grow bg-gray-200 shadow-sm rounded-md border-0 pl-10 text-gray-900 placeholder:text-gray-400 focus:ring-1 focus:ring-inset focus:ring-gray-200 focus-visible:outline-none sm:text-sm sm:leading-8"
 -         placeholder={t('common.operation.search')!}
 -         value={value}
 -         onChange={(e) => {
 -           onChange(e.target.value)
 -         }}
 -       />
 -     </div>
 -   )
 - }
 - export default React.memo(Search)
 
 
  |