nitro-v36-with-renderer-v36
/
src /
components /
room /
widgets /
furniture /
FurniChestSearchBar.tsx
FurniChestSearchBar.tsx 1.5 Ko
Télécharger le fichier
import { FC, KeyboardEvent } from 'react';
import { LocalizeText } from '../../../../api';
import { BaseButton } from '../../../../common/BaseButton';
import { NativeTextTree } from '../../../../common/native-text/NativeTextTree';
export const FurniChestSearchBar: FC<{
draft: string;
onDraftChange: (value: string) => void;
onApply: (value: string) => void;
onClear: () => void;
}> = ({ draft, onDraftChange, onApply, onClear }) => {
const onKeyDown = (e: KeyboardEvent<HTMLInputElement>) => {
if (e.key === 'Enter') {
onApply(draft);
return;
}
if (e.key === 'Escape') {
onClear();
}
};
return (
<NativeTextTree>
<div className="octane-chest__search">
{!draft && (
<span className="octane-chest__search-placeholder">{LocalizeText('catalog.search.title')}</span>
)}
<input
type="text"
className="octane-chest__search-input"
value={draft}
onChange={(e) => onDraftChange(e.target.value)}
onKeyDown={onKeyDown}
/>
{draft.length > 0 && (
<BaseButton type="button" className="octane-chest__search-clear" onClick={onClear} aria-label="Clear">
×
</BaseButton>
)}
</div>
</NativeTextTree>
);
};
