Spaces:
Runtime error
Runtime error
| import './Search.scss'; | |
| import CrossIcon from '@assets/images/cross.svg?react'; | |
| import SearchIcon from '@assets/images/search.svg?react'; | |
| const sparkClassNames = { | |
| textFieldContainer: 'spark-text-field-container', | |
| fieldTextWrapper: 'spark-fieldtext-wrapper', | |
| textField: | |
| 'spark-text-field spark-text-field-outline spark-text-field-size-m spark-text-field-start-slot-1x spark-text-field-end-slot-1x', | |
| textFieldStartSlot: 'spark-text-field-start-slot', | |
| input: 'spark-input spark-input-outline spark-input-size-m spark-focus spark-focus-within spark-focus-snap', | |
| textFieldEndSlot: 'spark-text-field-end-slot', | |
| iconButton: 'spark-button spark-button-ghost', | |
| icon: 'spark-icon', | |
| }; | |
| type SearchProps = { | |
| placeholder?: string; | |
| className?: string; | |
| value?: string; | |
| search?: (value: string) => void; | |
| }; | |
| export const Search = ({ placeholder, className = '', value = '', search }: SearchProps): JSX.Element => { | |
| return ( | |
| <div className={`${sparkClassNames.textFieldContainer} ${className}`}> | |
| <div className={sparkClassNames.fieldTextWrapper}> | |
| <div className={sparkClassNames.textField}> | |
| <div className={sparkClassNames.textFieldStartSlot}> | |
| <SearchIcon className={sparkClassNames.icon}></SearchIcon> | |
| </div> | |
| <input | |
| type="text" | |
| className={sparkClassNames.input} | |
| placeholder={placeholder} | |
| inputMode="text" | |
| value={value} | |
| onChange={(event) => search?.(event.target.value)} | |
| /> | |
| <div className={sparkClassNames.textFieldEndSlot}> | |
| {value && ( | |
| <button className={sparkClassNames.iconButton} onClick={() => search?.('')}> | |
| <CrossIcon className={sparkClassNames.icon} width="10"></CrossIcon> | |
| </button> | |
| )} | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| ); | |
| }; | |