next-slicezone
Version:
A component that maps other components to Prismic slices
2 lines (1 loc) • 6.86 kB
JavaScript
;function e(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}Object.defineProperty(exports,"__esModule",{value:!0});var t=e(require("react"));function r(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function n(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function a(e,t,r,n,a,i,o){try{var s=e[i](o),c=s.value}catch(e){return void r(e)}s.done?t(c):Promise.resolve(c).then(n,a)}function i(e){return function(){var t=this,r=arguments;return new Promise((function(n,i){var o=e.apply(t,r);function s(e){a(o,n,i,s,c,"next",e)}function c(e){a(o,n,i,s,c,"throw",e)}s(void 0)}))}}function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function s(){return(s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function c(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=/-(\w)/g;var u=/\B([A-Z])/g;function p(e){return e.replace(u,"-$1").toLowerCase()}var f={pascalize:function(e){return e?(e=e.replace(/_/g,"-").replace(l,((e,t)=>t?t.toUpperCase():"")))[0].toUpperCase()+e.slice(1):""},hyphenate:p,snakelize:function(e){return p(e).replace(/-/g,"_")}},d=e=>{var{title:r,description:n}=e;return t.default.createElement("div",{style:{height:"80vh",display:"flex",alignItems:"center",justifyContent:"center",flexDirection:"column",textAlign:"center"}},t.default.createElement("h2",null,r),t.default.createElement("p",{style:{maxWidth:"320px",fontSize:"16px"}},n))},y={title:"Your SliceZone is empty.",description:"Go to your writing room and start creating content to see it appear here!"},v={title:'Property "slice" not found or not formatted properly',description:"This usually means that data passed as property `slices` is not right. Check your configuuration and logs for more info!"};var h=["uid"],m=["repeat","repeatable","multi"];function g(){return(g=i((function*(e){var{queryType:t,apiParams:r,type:n,client:a}=e,{uid:i}=r,o=c(r,h),s=-1!==m.indexOf(t)?["getByUID",[n,i,o]]:["getSingle",[n,o]];return yield a[s[0]](...s[1])}))).apply(this,arguments)}var P=(e,t)=>{var r;if(e)if(t)t in e.data&&Array.isArray(e.data[t])?r=e.data[t]:console.error("[SliceZone/useGetStaticProps] Cannot find slice zone at specified key `%s`\n\nCheck the document below to make sure you provided the right key:",t,e.data);else{for(var n of["body","slices"])if(n in e.data&&Array.isArray(e.data[n])){r=e.data[n];break}r||console.error('[SliceZone/useGetStaticProps] Cannot find slice zone in document\n\nCheck the document below to make sure your slice zone is here or provide the `slicesKey` option:\n\nuseGetStaticProps({ /* ... */ slicesKey: "mySliceZone" });\n',e.data)}return r||[]},b=e=>{var{client:t,slicesKey:r,type:a="page",getStaticPropsParams:o={},queryType:s="repeat",apiParams:c,uid:l,lang:u,body:p}=e;return l&&console.warn('[next-slicezone/useGetStaticProps]: Parameter "uid" is deprecated, use "apiParams.uid" instead.'),u&&console.warn('[next-slicezone/useGetStaticProps]: Parameter "lang" is deprecated, use "apiParams.lang" instead.'),p&&console.warn('[next-slicezone/useGetStaticProps]: Parameter "body" is deprecated, use "slicesKey" instead.'),function(){var e=i((function*(e){var{preview:i=null,previewData:l={},params:u={}}=e,{ref:f=null}=l,d=c&&"function"==typeof c?c({params:u,previewData:l,preview:i}):c;try{var y=yield function(e){return g.apply(this,arguments)}({queryType:s,apiParams:Object.assign({ref:f},d),type:a,client:t});return n({props:n(n({},y),{},{error:null,preview:i,previewData:l,slices:P(y,r||p)})},o)}catch(e){return"production"!==process.env.NODE_ENV&&console.error("[next-slicezone] ".concat(e.toString())),n({props:{ref:f,error:e.toString(),apiParams:c,slices:[],preview:i,previewData:l}},o)}}));return function(t){return e.apply(this,arguments)}}()};function w(e,t,r){return O.apply(this,arguments)}function O(){return(O=i((function*(e,t,r){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:[],o=yield e.query('[at(document.type, "'.concat(t,'")]'),n(n({pageSize:100,lang:"*"},r),{},{page:a})),s=i.concat(o.results);return o.results_size+i.length<o.total_results_size?w(e,t,r,a+1,s):[...new Set(s)]}))).apply(this,arguments)}function S(){return(S=i((function*(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return yield w(e,t,r)}))).apply(this,arguments)}var x=e=>{var{type:t="page",formatPath:r=(()=>null),apiParams:a,client:o,getStaticPathsParams:s={fallback:!1},lang:c,params:l,fallback:u}=e;(e=>{null!=e&&console.warn("[next-slicezone] Parameter `fallback` is deprecated. Use getStaticPathsParams.fallback instead.")})(u);var p=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;return(arguments.length>2?arguments[2]:void 0)&&console.warn("[next-slicezone] Parameter `lang` is deprecated. Use `apiParams.lang` instead."),t?(console.warn("[next-slicezone] Parameter `params` is deprecated. Use `apiParams` instead."),t):e}(a,l,c);return function(){var e=i((function*(){return n({paths:(yield function(e,t){return S.apply(this,arguments)}(o,t,p)).reduce(((e,t)=>{var n=r(t);return n?[...e,n]:e}),[]),fallback:u},s)}));return function(){return e.apply(this,arguments)}}()};exports.default=function(e){var{slices:r,sliceProps:n={},resolver:a=(()=>null)}=e;return r&&r.length?r.map(((e,r)=>{if(!e||!e.slice_type)return t.default.createElement(d,s({key:"slice-".concat(r+1)},v));var i=f.pascalize(e.slice_type),o=a({sliceName:i,slice:e,i:r}),c=n&&"function"==typeof n?n({sliceName:i,slice:e,i:r}):n;return o?t.default.createElement(o,s({key:"slice-".concat(r+1),slice:e,i:r},c)):(console.error("Could not resolve slice, check that you properly pass a `resolver` property to SliceZone"),null)})):"production"!==process.env.NODE_ENV?t.default.createElement(d,y):null},exports.useGetStaticPaths=x,exports.useGetStaticProps=b,exports.withGetStaticPaths=x,exports.withGetStaticProps=b;