@n3/react-filters
v0.11.2
Published
Filters component for react applications
Downloads
672
Readme
@n3/react-filters
Установка
npm install @n3/react-filters
или
yarn add @n3/react-filters
API
Использование
import { Filters } from '@n3/react-filters';
// ...
<Filters
isAdaptive={isAdaptive}
filters={filters}
filterData={filterData}
values={values}
errors={errors}
appliedFilters={appliedFilters}
canReset={canReset}
setValues={setValues}
applyFilters={applyFilters}
handleReset={handleReset}
typeKey={typeKey}
labelKey={labelKey}
hintKey={hintKey}
filtersBlockComponent={filtersBlockComponent}
wrapperId={wrapperId}
toggleButtonId={toggleButtonId}
renderToggleButton={renderToggleButton}
renderResetButton={renderResetButton}
renderApplyButton={renderApplyButton}
/>
Props
isAdaptive
: Boolean - необязательое, включить ли адаптивное поведение фильтров, по умолчаниюtrue
;values
: Object - необязательное, текущие значения фильтров, по умолчанию{}
;errors
: Object - необязательное, текущие ошибки фильтров, по умолчанию{}
;appliedFilters
: Object - необязательное, значения применённых фильтров, по умолчанию{}
;canReset
: Boolean - необязательное, возможен ли сброс фильтров, по умолчаниюfalse
;setFiltersValues
: Function - обязательное, хэндлер, срабатывающий при изменении значений фильтров. Принимает объект изменённых фильтров;setAndApplyFilters
: Function - обязательное, аналогично,setFiltersValues
, но должно сразу применить фильтры с новыми значениями;applyFilters
: Function - обязательное, функция применения фильтров;handleReset
: Function - необязательное, функция сброса фильтров;filters
: Object - обязательное, объект описаний используемых фильтров. Ключ - тип фильтра, значение - описание фильтра;filterData
: Array - обязательное, массив используемых фильтров;typeKey
: String - необязательое, ключ для получения типа фильтра, по умолчаниюtype
;labelKey
: String - необязательое, ключ для получения заголовка фильтра, по умолчаниюlabel
;hintKey
: String - необязательое, ключ для получения подсказки фильтра, по умолчаниюhint
;fastFiltersNumber
- Number, необязательное, количество быстрых фильтров, по умолчанию 0;filtersBlockComponent
: Function - необязательое, кастомный компонент блока фильтров. Принимаетprops
:isAdaptive
- из компонентаFilters
;filters
- из компонентаFilters
;filterData
- из компонентаFilters
;labelKey
- из компонентаFilters
;typeKey
- из компонентаFilters
;values
- из компонентаFilters
;errors
- из компонентаFilters
;setValues
- из компонентаFilters
;applyFilters
- асинхронная функция, сначала вызываетapplyFilters
из компонентаFilters
, затем в случае успеха закрывает блок фильтров. Для обозначения ошибки применения фильтров нужно бросить исключениеApplyFiltersError
;
wrapperId
: string - необязательое, id корневого dom-элемента;toggleButtonId
: string - необязательое, id кнопки открытия/закрытия блока фильтров;renderToggleButton
: Function - необязательное, фукнция рендера кнопки открытия/закрытия фильтров;renderResetButton
: Function - необязательное, фукнция рендера кнопки сброса фильтров;renderApplyButton
: Function - необязательное, фукнция рендера кнопки применения фильтров;renderTopBlock
: Function - необязательное, фукнция рендера верхнего блока.
import { ApplyFiltersError } from '@n3/react-filters';
async function applyFilters() {
// ...
throw new ApplyFiltersError();
}
Описания фильтров
Каждое описание фильтра иммет формат @n3/filters-utils, и представляется объектом вида:
component
- react-компонент фильтра. Принимает следующие props:isFastFilter
: Boolean - отрендерен ли фильтр в блоке быстрых фильтровlabel
: String - лейбл поляpayload
: Object - объект, переданный вfiltersData
values
: Object - текущие значения фильтровappliedFilters
: Object - значения применённых фильтровerrors
: Object - текущие ошибки фильтровfilters
: Object - объект, переданный вFilters
setFiltersValues
: Function - из родительского компонентаsetAndApplyFilters
: Function - из родительского компонентаsetValues
: Function - хэндлер, который нужно вызывать при изменении значения фильтра. Первым аргументом принимает объект, ключами которого являются имена изменённых фильтров, а значениями - значения фильтров. Для быстрых фильтров принимаетsetAndApplyFilters
, а для обычных -setFiltersValues
renderFastFilter
- компонент обёртки быстрого фильтра для возможности задания ширины по конфигурации. Принимает следующие props:children
: React.Nodepayload
: Object - объект, переданный вfiltersData
checkForApplied
: Function - необязательная, функция проверки, применён ли фильтр. Первым аргументом принимаетpayload
(объект, переданный вfiltersData
), а вторым -appliedFilters
главного компонента. Должна возвращать массив булево значение. По умолчанию, берёт значение изappliedFilters
по ключуpayload.name
и проверяет его на истинностьgetNames
: Function - необязательная, смотри @n3/filters-utilsserializeValues
: Function - необязательная, смотри @n3/filters-utilscheckCanReset
: Function - необязательная, смотри @n3/filters-utilsparseValues
: Function - необязательная, смотри @n3/filters-utils