Appearance
useListing ​
Definition ​
Basic usage ​
ts
const {
getInitialListing,
getCurrentListing,
getElements,
getSortingOrders,
getCurrentSortingOrder,
getCurrentPage,
getTotal,
getTotalPagesCount,
getLimit,
getInitialFilters,
getAvailableFilters,
getCurrentFilters,
loading,
loadingMore,
setInitialListing,
initSearch,
search,
loadMore,
changeCurrentSortingOrder,
changeCurrentPage,
setCurrentFilters,
resetFilters,
filtersToQuery
} = useListing(params);
Signature ​
ts
export function useListing(params?: {
listingType: ListingType;
categoryId?: string;
defaultSearchCriteria?: RequestParameters<"searchPage">;
}): UseListingReturn
Parameters ​
Name | Type | Description |
---|---|---|
params | { listingType: ListingType; categoryId?: string; defaultSearchCriteria?: RequestParameters<"searchPage">; } |
Return type ​
See UseListingReturn
ts
export type UseListingReturn = {
/**
* Listing that is currently set
* {@link ListingResult} object
*/
getInitialListing: ComputedRef<Schemas["ProductListingResult"] | null>;
/**
* Sets the initial listing - available synchronously
* @param {@link initialListing} - initial listing to set
* @returns
*/
setInitialListing(
initialListing: Schemas["ProductListingResult"],
): Promise<void>;
/**
* @deprecated - use `search` instead
* Searches for the listing based on the criteria
* @param criteria {@link Schemas['Criteria']}
* @returns
*/
initSearch(
criteria: RequestParameters<"searchPage">,
): Promise<Schemas["ProductListingResult"]>;
/**
* Searches for the listing based on the criteria
* @param criteria
* @param options - `options.preventRouteChange` - if true, the route will not be changed
* @returns
*/
search(
criteria: RequestParameters<"searchPage">,
options?: {
preventRouteChange?: boolean;
},
): Promise<void>;
/**
* Loads more (next page) elements to the listing
*/
loadMore(criteria: RequestParameters<"searchPage">): Promise<void>;
/**
* Listing that is currently set
*/
getCurrentListing: ComputedRef<Schemas["ProductListingResult"] | null>;
/**
* Listing elements ({@link Product}) that are currently set
*/
getElements: ComputedRef<Schemas["ProductListingResult"]["elements"]>;
/**
* Available sorting orders
*/
getSortingOrders: ComputedRef<
Schemas["ProductSorting"][] | { key: string; label: string }[] | undefined
>;
/**
* Current sorting order
*/
getCurrentSortingOrder: ComputedRef<string | undefined>;
/**
* Changes the current sorting order
* @param order - i.e. "name-asc"
* @returns
*/
changeCurrentSortingOrder(
order: string,
query?: RequestParameters<"searchPage">,
): Promise<void>;
/**
* Current page number
*/
getCurrentPage: ComputedRef<number>;
/**
* Changes the current page number
* @param pageNumber - page number to change to
* @returns
*/
changeCurrentPage(
page: number,
query?: RequestParameters<"searchPage">,
): Promise<void>;
/**
* Total number of elements found for the current search criteria
*/
getTotal: ComputedRef<number>;
/**
* Total number of pages found for the current search criteria
*/
getTotalPagesCount: ComputedRef<number>;
/**
* Number of elements per page
*/
getLimit: ComputedRef<number>;
/**
* Initial filters
*/
getInitialFilters: ComputedRef<ReturnType<typeof getListingFilters>>;
/**
* All available filters
*/
getAvailableFilters: ComputedRef<ReturnType<typeof getListingFilters>>;
/**
* Filters that are currently set
*/
getCurrentFilters: ComputedRef<any>;
/**
* Sets the filters to be applied for the listing
* @param filters
* @returns
*/
setCurrentFilters(filters: any): Promise<void>;
/**
* Indicates if the listing is being fetched
*/
loading: ComputedRef<boolean>;
/**
* Indicates if the listing is being fetched via `loadMore` method
*/
loadingMore: ComputedRef<boolean>;
/**
* Resets the filters - clears the current filters
*/
resetFilters(): Promise<void>;
/**
* Change selected filters to the query object
*/
filtersToQuery(filters: any): Record<string, any>;
};
Properties ​
Name | Type | Description |
---|---|---|
getInitialListing | ComputedRef< | null> | Listing that is currently set{@link ListingResult} object |
getCurrentListing | ComputedRef< | null> | Listing that is currently set |
getElements | ComputedRef<> | Listing elements ({@link Product}) that are currently set |
getSortingOrders | ComputedRef<Array<> | Array<{ key: string; label: string }> | undefined> | Available sorting orders |
getCurrentSortingOrder | ComputedRef<string | undefined> | Current sorting order |
getCurrentPage | ComputedRef<number> | Current page number |
getTotal | ComputedRef<number> | Total number of elements found for the current search criteria |
getTotalPagesCount | ComputedRef<number> | Total number of pages found for the current search criteria |
getLimit | ComputedRef<number> | Number of elements per page |
getInitialFilters | ComputedRef<ReturnType<>> | Initial filters |
getAvailableFilters | ComputedRef<ReturnType<>> | All available filters |
getCurrentFilters | ComputedRef<any> | Filters that are currently set |
loading | ComputedRef<boolean> | Indicates if the listing is being fetched |
loadingMore | ComputedRef<boolean> | Indicates if the listing is being fetched via `loadMore` method |
Methods ​
Name | Type | Description |
---|---|---|
setInitialListing | Promise<void> | Sets the initial listing - available synchronously |
initSearch | Promise<> | |
search | Promise<void> | Searches for the listing based on the criteria |
loadMore | Promise<void> | Loads more (next page) elements to the listing |
changeCurrentSortingOrder | Promise<void> | Changes the current sorting order |
changeCurrentPage | Promise<void> | Changes the current page number |
setCurrentFilters | Promise<void> | Sets the filters to be applied for the listing |
resetFilters | Promise<void> | Resets the filters - clears the current filters |
filtersToQuery | Record<string, any> | Change selected filters to the query object |