npm.io
0.4.38 • Published 4d ago

@snack-uikit/search-private

Licence
Apache-2.0
Version
0.4.38
Deps
6
Size
56 kB
Vulns
0
Weekly
0
Stars
23

Search Private

Installation

npm i @snack-uikit/search-private

Changelog

Description

  • Пакет @snack-uikit/search-private предоставляет компонент SearchPrivate для реализации поисковых полей в интерфейсе.
  • Компонент является внутренним (private) и предназначен для использования внутри других пакетов UI Kit (например, Search, Toolbar), а не напрямую в приложениях.
  • SearchPrivate представляет собой поисковое поле с иконкой поиска в префиксе, кнопкой очистки значения в постфиксе и поддержкой состояния загрузки (отображается индикатор загрузки вместо иконки поиска).
  • Компонент поддерживает различные размеры (size: 's' | 'm' | 'l'), управляется через пропы value и onChange, поддерживает обработчики фокуса (onFocus, onBlur) и подтверждения поиска по Enter (onSubmit).
  • Кнопка очистки значения появляется автоматически при наличии текста в поле и позволяет быстро очистить введённый поисковый запрос с сохранением фокуса на поле ввода.
  • Компонент использует InputPrivate в качестве базового элемента и поддерживает все стандартные пропы для работы с полем ввода.

Example

import { useState } from 'react';
import { SearchPrivate } from '@snack-uikit/search-private';

function Example() {
  const [value, setValue] = useState('');
  const [loading, setLoading] = useState(false);

  const handleSubmit = (searchValue: string) => {
    // Логика подтверждения поиска
    console.log('Search submitted:', searchValue);
  };

  return (
    <SearchPrivate
      value={value}
      onChange={setValue}
      loading={loading}
      onSubmit={handleSubmit}
      size="m"
      placeholder="Поиск..."
    />
  );
}

SearchPrivate

Props
name type default value description
size enum Size: "s", "m", "l" s Размер
loading boolean - Состояние загрузки
onSubmit (value: string) => void - Колбек на подтверждение поиска по строке
className string - CSS-класс
tabIndex number -
value string - Значение input
onChange (value: string, e?: ChangeEvent<HTMLInputElement>) => void - Колбек смены значения
placeholder string - Значение плейсхолдера
onFocus FocusEventHandler<HTMLInputElement> - Колбек обработки получения фокуса
onBlur FocusEventHandler<HTMLInputElement> - Колбек обработки потери фокуса
onKeyDown KeyboardEventHandler<HTMLInputElement> - Колбек обработки начала нажатия клавиши клавиатуры
ref LegacyRef<HTMLInputElement> - Allows getting a ref to the component instance. Once the component unmounts, React will set ref.current to null (or call the ref with null if you passed a callback ref). @see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}
key Key -