1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[834],{7484:function(e,t,n){Promise.resolve().then(n.bind(n,6187))},6187:function(e,t,n){"use strict";n.r(t);var r=n(7437),i=n(2265),o=n(2156);let newsFetch=async e=>fetch("https://hacker-news.firebaseio.com/v0/item/".concat(e,".json")).then(e=>new Promise(t=>setTimeout(()=>t(e),50))).then(e=>e.json()),News=e=>{let{id:t}=e,{data:n,reload:i}=(0,o.NS)(()=>newsFetch(t),{key:"news-".concat(t)});if(!n)return null;let{title:s,time:l,url:d,by:u,score:a,descendants:c}=n;return(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("button",{onClick:i,children:"Reload"})," ",(0,r.jsx)("a",{href:d,children:s})]}),(0,r.jsxs)("div",{children:[a," point:",a," by ",u,new Date(1e3*l).toLocaleString("en-us",{timeZone:"UTC"})," | comment:",c]})]})},newsListFetch=()=>fetch("https://hacker-news.firebaseio.com/v0/topstories.json").then(e=>new Promise(t=>setTimeout(()=>t(e),50))).then(e=>e.json()),NewsList=()=>{let{data:e,reload:t}=(0,o.NS)(()=>newsListFetch()),[n,s]=(0,i.useState)(1);if(!e)return null;let l=Math.floor((null==e?void 0:e.length)/30);return(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("button",{onClick:t,children:"Reload All"})," ",(0,r.jsx)("button",{onClick:()=>s(Math.max(n-1,1)),children:"Previous"})," ",n,"/",l," ",(0,r.jsx)("button",{onClick:()=>s(Math.min(n+1,l)),children:"Next"})]}),e.slice((n-1)*30,30*n).map(e=>(0,r.jsxs)(i.Fragment,{children:[(0,r.jsx)("hr",{}),(0,r.jsx)(News,{id:e})]},e))]})};t.default=()=>(0,r.jsx)(NewsList,{})},622:function(e,t,n){"use strict";/** 2 * @license React 3 * react-jsx-runtime.production.min.js 4 * 5 * Copyright (c) Meta Platforms, Inc. and affiliates. 6 * 7 * This source code is licensed under the MIT license found in the 8 * LICENSE file in the root directory of this source tree. 9 */var r=n(2265),i=Symbol.for("react.element"),o=Symbol.for("react.fragment"),s=Object.prototype.hasOwnProperty,l=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,d={key:!0,ref:!0,__self:!0,__source:!0};function q(e,t,n){var r,o={},u=null,a=null;for(r in void 0!==n&&(u=""+n),void 0!==t.key&&(u=""+t.key),void 0!==t.ref&&(a=t.ref),t)s.call(t,r)&&!d.hasOwnProperty(r)&&(o[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps)void 0===o[r]&&(o[r]=t[r]);return{$$typeof:i,type:e,key:u,ref:a,props:o,_owner:l.current}}t.Fragment=o,t.jsx=q,t.jsxs=q},7437:function(e,t,n){"use strict";e.exports=n(622)},2156:function(e,t,n){"use strict";n.d(t,{HK:function(){return SSRProvider},NS:function(){return useSSR}});var r=n(2265);let i="__NEXT_DATA_PROMISE__",o=(0,r.createContext)(void 0),render=(e,t)=>{var n;return null===(n=e.get(t))||void 0===n?void 0:n.forEach(e=>e())},loader=(e,t,n)=>{var r,i;let{promises:o,values:s,renderMap:l}=t,d=null!=n?n:null===(r=s[e])||void 0===r?void 0:r.fetcher;if(!d)throw Error("Empty by fetcher");let u={data:null===(i=s[e])||void 0===i?void 0:i.data,error:void 0,isLoading:!0,fetcher:d};s[e]=u,render(l,e);let a=d();return u.promise=a,"undefined"==typeof window&&o.add(a),a.then(t=>{s[e]={data:t,error:void 0,isLoading:!1,fetcher:d},render(l,e)}).catch(t=>{s[e]={data:void 0,error:t,isLoading:!1,fetcher:d},render(l,e)}),a},useSSR=(e,{key:t}={})=>{let n=(0,r.useContext)(o),{values:i,renderMap:s}=n,l=(0,r.useId)(),d=null!=t?t:l,u=(0,r.useSyncExternalStore)(e=>{var t;let n=null!==(t=s.get(d))&&void 0!==t?t:new Set;return s.set(d,n),n.add(e),()=>n.delete(e)},()=>i[d],()=>i[d]),a=(0,r.useCallback)(()=>loader(d,n,e),[d,n,e]);if(u){if(u.isLoading){if("undefined"==typeof window)throw u.promise}else u.fetcher||(u.fetcher=e)}else{let e=a();if("undefined"==typeof window)throw e}return{...u,reload:a}},DataRender=()=>{let e=(0,r.useContext)(o);if("undefined"==typeof window&&!e.finished){let t;for(;t=e.promises.size;)throw Promise.allSettled(e.promises).then(()=>{t===e.promises.size&&e.promises.clear()})}return r.createElement("script",{id:i,type:"application/json",dangerouslySetInnerHTML:{__html:JSON.stringify(e.values)}})},useContextValue=()=>{let e=(0,r.useRef)({values:{},promises:new Set,finished:!1,renderMap:new Map});if("undefined"!=typeof window&&!e.current.finished){let t=document.getElementById(i);t&&(e.current.values=JSON.parse(t.innerHTML)),e.current.finished=!0}return e.current},SSRProvider=({children:e})=>{let t=useContextValue();return r.createElement(o.Provider,{value:t},e,r.createElement(DataRender,null))}}},function(e){e.O(0,[971,472,744],function(){return e(e.s=7484)}),_N_E=e.O()}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.