1.1.0 • Published 14 days ago

@vtaits/filterlist v1.1.0

Weekly downloads
73
License
MIT
Repository
github
Last release
14 days ago

NPM dependencies status Types

@vtaits/filterlist

Api reference

Util for creating lists with filters, sotring, paginatinon, endless scroll etc.

Installation

npm install @vtaits/filterlist --save

or

yarn add @vtaits/filterlist

Api

import { Filterlist } from '@vtaits/filterlist';

/*
 * assuming the API returns something like this:
 *   const json = {
 *     results: [
 *       {
 *         value: 1,
 *         label: 'Audi',
 *       },
 *       {
 *         value: 2,
 *         label: 'Mercedes',
 *       },
 *       {
 *         value: 3,
 *         label: 'BMW',
 *       },
 *     ],
 *     total: 50,
 *   };
 */

const filterlist = new Filterlist({
  loadItems: async ({
    page,
  }) => {
    const response = await fetch(`/awesome-api-url/?page=${page}`);
    const responseJSON = await response.json();

    return {
      items: responseJSON.results,
      total: responseJSON.total,
    };
  },
});

filterlist.emitter.on(eventTypes.changeListState, (nextListState) => {
  // change ui
  document.getElementById('loader').style.display = nextListState.loading ? 'block' : 'none';
});

// change the page
const changePage = (nextPage: number) => {
  filterlist.setPage(nextPage);
};

Events

emitter is the instance of mitt.

import { eventTypes } from '@vtaits/filterlist';

filterlist.emitter.on(eventTypes.changeListState, (listState) => {
  // ...
});

List of event types:

NameWhen triggered
loadMoreafter load items on init or call loadMore method
setFilterValueafter call setFilterValue method
applyFilterafter call applyFilter method
setAndApplyFilterafter call setAndApplyFilter method
resetFilterafter call resetFilter method
setFiltersValuesafter call setFiltersValues method
applyFiltersafter call applyFilters method
setAndApplyFiltersafter call setAndApplyFilters method
setPageafter call setPage method
setPageSizeafter call setPageSize method
resetFiltersafter call resetFilters method
resetAllFiltersafter call resetAllFilters method
setSortingafter call setSorting method
resetSortingafter call resetSorting method
reloadafter call reload method
updateStateAndRequestafter call updateStateAndRequest method
changeLoadParamsafter call some of next methods: loadMore, applyFilter, setAndApplyFilter, resetFilter, applyFilters, setAndApplyFilters, resetFilters, resetAllFilters, setSorting, resetSorting, updateStateAndRequest
insertItemafter call insertItem method
deleteItemafter call deleteItem method
updateItemafter call updateItem method
requestItemsbefore load items
loadItemsSuccessafter successfully load
loadItemsErrorafter load with error
changeListStateafter every change of list state
1.1.0

14 days ago

1.0.0

4 months ago

0.3.1

9 months ago

0.3.0

2 years ago

0.2.3

3 years ago

0.2.4

3 years ago

0.2.2

3 years ago

0.2.1

4 years ago

0.2.0

4 years ago

0.1.5

5 years ago

0.1.4

5 years ago

0.1.3

5 years ago

0.1.2

5 years ago

0.1.1

5 years ago

0.1.0

5 years ago