UNPKG

@plone/volto

Version:
51 lines (44 loc) 1.46 kB
import { getQueryStringResults } from '@plone/volto/actions/querystringsearch/querystringsearch'; import { resolveBlockExtensions } from '@plone/volto/helpers/Extensions'; import qs from 'query-string'; import { slugify } from '@plone/volto/helpers/Utils/Utils'; const getCurrentPage = (location, id) => { const pageQueryParam = qs.parse(location.search); switch (Object.keys(pageQueryParam).length) { case 0: return 1; case 1: // when there is only one query param, it could be the simple page number or the sluggified block id return pageQueryParam['page'] || pageQueryParam[slugify(`page-${id}`)]; default: return pageQueryParam[slugify(`page-${id}`)]; } }; export default function getListingBlockAsyncData(props) { const { data, path, location, id, dispatch, blocksConfig, content } = props; const { resolvedExtensions } = resolveBlockExtensions(data, blocksConfig); const subrequestID = content?.UID ? `${content?.UID}-${id}` : id; const currentPage = getCurrentPage(location, id); if (!data.querystring) { return [ async () => { return null; }, ]; } return [ dispatch( getQueryStringResults( path, { ...data.querystring, ...(resolvedExtensions?.variation?.fullobjects ? { fullobjects: 1 } : { metadata_fields: '_all' }), }, subrequestID, currentPage, ), ), ]; }