UNPKG

@algolia/react-instantsearch-widget-loadmore-with-progressbar

Version:
2 lines (1 loc) 4.58 kB
(function(s,c){typeof exports=="object"&&typeof module!="undefined"?c(exports,require("react-instantsearch-core"),require("classnames"),require("react"),require("react-instantsearch-dom")):typeof define=="function"&&define.amd?define(["exports","react-instantsearch-core","classnames","react","react-instantsearch-dom"],c):(s=typeof globalThis!="undefined"?globalThis:s||self,c(s.LoadMoreWithProgressBar={},s.ReactInstantSearchCore,s.classNames,s.React,s.ReactInstantSearchDOM))})(this,function(s,c,N,P,W){"use strict";function v(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var M=v(N),u=v(P);function l(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function O(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),t.push.apply(t,n)}return t}function i(e){for(var r=1;r<arguments.length;r++){var t=arguments[r]!=null?arguments[r]:{};r%2?O(Object(t),!0).forEach(function(n){l(e,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):O(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))})}return e}function y(e){return b(e)?e.multiIndexContext.targetedIndex:e.ais.mainTargetedIndex}function j(e,r){if(e.results){if(e.results.hits)return e.results;var t=y(r);if(e.results[t])return e.results[t]}return null}function b(e){return e&&e.multiIndexContext}function h(e,r,t,n,a){if(b(t)){var o=y(t);return a?_(e,r,o,n,a):E(e,r,o,n)}else return e.indices&&n&&Object.keys(e.indices).forEach(function(d){e=h(e,{page:1},{multiIndexContext:{targetedIndex:d}},!0,a)}),a?I(e,r,n,a):w(e,r,n)}function E(e,r,t,n){var a=n?{page:1}:void 0,o=e.indices&&e.indices[t]?i(i({},e.indices),{},l({},t,i(i(i({},e.indices[t]),r),a))):i(i({},e.indices),{},l({},t,i(i({},r),a)));return i(i({},e),{},{indices:o})}function w(e,r,t){var n=t?{page:1}:void 0;return i(i(i({},e),r),n)}function _(e,r,t,n,a){var o,d=n?{page:1}:void 0,p=e.indices&&e.indices[t]?i(i({},e.indices),{},l({},t,i(i({},e.indices[t]),{},(o={},l(o,a,i(i({},e.indices[t][a]),r)),l(o,"page",1),o)))):i(i({},e.indices),{},l({},t,i(l({},a,r),d)));return i(i({},e),{},{indices:p})}function I(e,r,t,n){var a=t?{page:1}:void 0;return i(i({},e),{},l({},n,i(i({},e[n]),r)),a)}function $(){return"page"}const x=c.createConnector({displayName:"AlgoliaLoadMoreWithProgressBar",$$type:"ais.loadMoreWithProgressBar",getProvidedProps(e,r,t){const n=j(t,{ais:e.contextValue,multiIndexContext:e.indexContextValue});if(!n)return{nbSeenHits:0,nbTotalHits:0,refineNext:()=>{},isSearchStalled:t.isSearchStalled};const{page:a,nbPages:o,nbHits:d,hitsPerPage:p}=n,m=a+1===o;let g=(a+1)*p;return g+=m?d-g:0,{nbSeenHits:g,nbTotalHits:d,refineNext:()=>this.refine(a+1),isSearchStalled:t.isSearchStalled}},refine(e,r,t){const a={[$()]:t+1},o=!1;return h(r,a,{ais:e.contextValue,multiIndexContext:e.indexContextValue},o,null)},cleanUp(e,r){return r},getSearchParameters(e){return e}}),f=(...e)=>M.default(W.createClassNames("LoadMoreWithProgressBar")(...e)),C=({translations:e,isSearchStalled:r,refineNext:t})=>u.default.createElement("button",{type:"button",className:M.default(f("loadMore"),"ais-InfiniteHits-loadMore"),disabled:r,onClick:t},r?e.searchStalled:e.loadMore),D=({nbSeenHits:e,nbTotalHits:r,isSearchStalled:t,refineNext:n,translate:a,buttonComponent:o,className:d})=>{const p=e<r,m=r>0,g=m?Math.floor(e/r*100):0,L=P.useMemo(()=>({loadMore:a("loadMore"),searchStalled:a("searchStalled"),text:a("text",{nbSeenHits:e,nbTotalHits:r})}),[a,e,r]),T=o!=null?o:C;return u.default.createElement("div",{className:M.default(f(""),d)},m&&u.default.createElement("div",{className:f("progressBar")},u.default.createElement("progress",{className:f("progressBar-bar"),max:"100",value:g},u.default.createElement("div",{className:f("progressBar-fallback")},u.default.createElement("span",{style:{width:`${g}%`}}))),u.default.createElement("div",{className:f("progressBar-text")},L.text)),p&&m&&u.default.createElement(T,{translations:L,isSearchStalled:t,refineNext:n}))},V={loadMore:"Load more",searchStalled:"Loading...",text:({nbSeenHits:e,nbTotalHits:r})=>`You've seen ${e} item${e>1?"s":""} out of ${r}`},B=c.translatable(V)(D),q=x(B,{$$widgetType:"ais.loadMoreWithProgressBar"});s.LoadMoreWithProgressBar=q,s.LoadMoreWithProgressBarComponent=B,s.connectLoadMoreWithProgressBar=x,Object.defineProperties(s,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});