PageSourceSearch

https://www.hbreviews.com/_next/static/chunks/2r968suoj_9s7.js

js hbreviews.com collected 2026-10-07 14:30:22 UTC 27,569 bytes, 1 lines download raw bytes

1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,54259,e=>{"use strict";e.s(["buildImageUrl",0,function(e,t="w780"){return e?`https://image.tmdb.org/t/p/${t}${e}`:null},"buildMockArtworkUrl",0,function(e,t=900,a=1200){return e?`https://picsum.photos/seed/hb-${encodeURIComponent(e)}/${t}/${a}`:null}])},76104,e=>{"use strict";let t=(0,e.i(78145).default)("star",[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]]);e.s(["Star",0,t],76104)},18469,e=>{"use strict";let t=(0,e.i(78145).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["Check",0,t],18469)},50927,e=>{e.v({actions:"RegenerationOverlay-module__XGdQoG__actions",activity:"RegenerationOverlay-module__XGdQoG__activity",dialog:"RegenerationOverlay-module__XGdQoG__dialog",errorIcon:"RegenerationOverlay-module__XGdQoG__errorIcon",eyebrow:"RegenerationOverlay-module__XGdQoG__eyebrow",icon:"RegenerationOverlay-module__XGdQoG__icon",overlay:"RegenerationOverlay-module__XGdQoG__overlay",policyList:"RegenerationOverlay-module__XGdQoG__policyList",primaryAction:"RegenerationOverlay-module__XGdQoG__primaryAction",pulse:"RegenerationOverlay-module__XGdQoG__pulse",safetyNote:"RegenerationOverlay-module__XGdQoG__safetyNote",secondaryAction:"RegenerationOverlay-module__XGdQoG__secondaryAction",sheen:"RegenerationOverlay-module__XGdQoG__sheen",spin:"RegenerationOverlay-module__XGdQoG__spin",spinning:"RegenerationOverlay-module__XGdQoG__spinning",technicalDetails:"RegenerationOverlay-module__XGdQoG__technicalDetails"})},22953,214,e=>{"use strict";var t=e.i(89831),a=e.i(85057),r=e.i(42682),i=e.i(89336);let n=(0,e.i(78145).default)("sparkles",[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}
1],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]]);e.s(["Sparkles",0,n],214);var l=e.i(64326),s=e.i(36572),o=e.i(18469),c=e.i(684);let d=[{afterSeconds:0,label:"Preparing title details"},{afterSeconds:12,label:"Researching credible public sources"},{afterSeconds:55,label:"Verifying links and comparing evidence"},{afterSeconds:110,label:"Writing the seven-category review"},{afterSeconds:170,label:"Quality-checking and revising"}];function u({startedAt:e,mode:a,recovering:r=!1}){let i,n,[l,h]=(0,s.useState)(0);(0,s.useEffect)(()=>{let t=window.setInterval(()=>{h(Math.max(0,Math.floor((Date.now()-e)/1e3)))},1e3);return()=>window.clearInterval(t)},[e]);let m=(0,s.useMemo)(()=>{let e=0;for(let t=0;t<d.length;t+=1)l>=d[t].afterSeconds&&(e=t);return e},[l]);return r?(0,t.jsxs)("div",{className:"generation-progress recovering",role:"status","aria-live":"polite",children:[(0,t.jsx)(c.LoaderCircle,{className:"spin",size:17,"aria-hidden":"true"}),(0,t.jsxs)("div",{children:[(0,t.jsx)("strong",{children:"Checking whether the review finished"}),(0,t.jsx)("span",{children:"The request may have completed even though the browser connection was interrupted."})]})]}):(0,t.jsxs)("div",{className:"generation-progress",role:"status","aria-live":"polite",children:[(0,t.jsxs)("div",{className:"generation-progress-heading",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("strong",{children:"regenerate"===a?"Refreshing the HB review":"Creating the HB review"}),(0,t.jsx)("span",{children:"Source-heavy reviews can take a few minutes; strict checks remain enabled."})]}),(0,t.jsx)("time",{children:(i=Math.floor(l/60),n=l%60,i?`${i}m ${String(n).padStart(2,"0")}s`:`${n}s`)})]}),(0,t.jsx)("ol",{"aria-label":"Estimated review generation progress",children:d.map((e,a)=>{let r=a<m,i=a===m;return(0,t.jsxs)("li",{className:r?"completed":i?"active":void 0,children:[(0,t.jsx)("span",{"aria-hidden":"true",children:r?(0,t.jsx)(o.Check,{size:13}):i?(0,t.jsx)(c.LoaderCircle,{className:"spin",size:13}):a+1}),e.label]},e.label)})})]})}var h=e.i(50927);e.s(["RegenerationOverlay",0,function({mode:e="regenerate",status:o,title:c,startedAt:
1d,message:m,requestId:v,onConfirm:g,onRetry:p,onClose:f}){let y=(0,s.useRef)(null),w="error"===o,b="confirming"===o,j="regenerate"===e;(0,s.useEffect)(()=>{let e=document.body.style.overflow;function t(e){"Escape"===e.key&&(b||w)&&f&&f()}return document.body.style.overflow="hidden",y.current?.focus(),document.addEventListener("keydown",t),()=>{document.removeEventListener("keydown",t),document.body.style.overflow=e}},[b,w,f]);let x=b?j?`Refresh ${c} with fresh sources?`:`Create a fresh review for ${c}?`:w?j?"Regeneration did not complete":"Generation did not complete":"recovering"===o?"Finishing your fresh review":j?`Refreshing ${c}`:`Creating ${c}`,k=b?j?"HB will re-check newer TMDb details, released episodes where relevant, and fresh credible sources. Your current published review remains unchanged unless the replacement passes every quality check.":"HB will check TMDb details, released episodes where relevant, and fresh credible sources before creating a spoiler-free review.":w?m??(j?"HB could not refresh this review yet.":"HB could not create this review yet."):j?"HB is checking newer TMDb details, the latest released episodes where relevant, and fresh credible sources. Your current review stays available unless the replacement passes every quality check.":"HB is checking TMDb details, released episodes where relevant, and fresh credible sources before creating your spoiler-free review.";return(0,l.createPortal)((0,t.jsx)("div",{className:h.default.overlay,children:(0,t.jsxs)("section",{ref:y,className:h.default.dialog,role:"dialog","aria-modal":"true","aria-labelledby":"regeneration-overlay-title","aria-describedby":"regeneration-overlay-description",tabIndex:-1,children:[(0,t.jsx)("div",{className:`${h.default.icon} ${w?h.default.errorIcon:""}`,"aria-hidden":"true",children:b?(0,t.jsx)(n,{size:26}):w?(0,t.jsx)(a.AlertTriangle,{size:26}):"recovering"===o?(0,t.jsx)(i.ShieldCheck,{size:26}):(0,t.jsx)(r.RefreshCw,{className:h.default.spinning,size:26})}),(0,t.jsxs)("span",{className:h.default.eyebrow,children:[(0,t.jsx)(n,{size:14,"aria-hidden":"true"}),b?"Before we start":"Fresh-source review"]}),(0,t.jsx)("h2",{id:"regeneration-overlay-title",children:x}),(0,t.jsx)("p",{id:"regeneration-overlay-description",children:k}),b||w||!d?null:(0,t.jsx)(u,{startedAt:d,mode:e,recovering:"recovering"===o},d),b?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("ul",{className:h.default.policyList,"aria-label":"What HB Reviews will do",children:[(0,t.jsx)("li",{children:"Refresh title details and released-episode information from TMDb."}),(0,t.jsx)("li",{children:"Research fresh, credible public sources and verify their links."}),(0,t.jsx)("li",{children:"Publish only after the seven-category review passes HB quality checks."})]}),(0,t.jsxs)("div",{className:h.default.actions,children:[(0,t.jsx)("button",{className:h.default.secondaryAction,type:"button",onClick:f,children:"Cancel"}),(0,t.jsxs)("button",{className:h.default.primaryAction,type:"button",onClick:g,children:[(0,t.jsx)(n,{size:16,"aria-hidden":"true"}),j?"Regenerate with fresh sources":"Generate fresh review"]})]})]}):w?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("p",{className:h.default.safetyNote,children:[(0,t.jsx)(i.ShieldCheck,{size:15,"aria-hidden":"true"}),j?"Your existing published review is safe and unchanged.":"Nothing incomplete has been published."]}),(0,t.jsxs)("div",{className:h.default.actions,children:[f?(0,t.jsx)("button",{className:h.default.secondaryAction,type:"button",onClick:f,children:"Close"}):null,p?(0,t.jsxs)("button",{className:h.default.primaryAction,type:"button",onClick:p,children:[(0,t.jsx)(r.RefreshCw,{size:16,"aria-hidden":"true"}),"Try again"]}):null]}),v?(0,t.jsxs)("details",{className:h.default.technicalDetails,children:[(0,t.jsx)("summary",{children:"Technical details"}),(0,t.jsxs)("code",{children:["Request ID: ",v]})]}):null]}):(0,t.jsxs)("div",{className:h.default.activity,role:"status","aria-live":"polite",children:[(0,t.jsx)("span",{}),j?"Regeneration has started automatically. No further click is needed.":"Generation has started automatically. No further click is needed."]})]})}),document.body)}],22953)},69932,e=>{"use strict";e.s(["formatScore",0,function(e){return Number.isInteger(e)?String(e):e.toFixed(1)}])},96021,e=>{e.v({compact:"TmdbAudienceRating-module__iU1fyq__compact",rating:"TmdbAudienceRating-module__iU1fyq__rating"})},82243,45176,e=>{"use strict";var t=e.i(89831),a=e.i(76104);function r(e){let t="number"==typeof e?e:Number(e);return Number.isFinite(t)?t:null}function i(e,t){let a=r(e),i=r(t);return{average:null!==a&&a>0&&a<=10?Math.round(10*a)/10:null,voteCount:null!==i&&i>=0?Math.round(i):null}}function n(e){return i(e?.vote_average,e?.vote_count)}
1e.s(["normaliseTmdbAudienceRating",0,i,"tmdbAudienceRatingFromMetadata",0,n,"tmdbAudienceRatingFromTitle",0,function(e){return void 0!==e.voteAverage||void 0!==e.voteCount?i(e.voteAverage,e.voteCount):n(e.sourceMetadata)}],45176);var l=e.i(96021);e.s(["TmdbAudienceRating",0,function({average:e,voteCount:r,compact:n=!1}){let s=i(e,r),o=null===s.average?"Not yet rated":`${s.average.toFixed(1)}/10`,c=s.voteCount&&s.voteCount>0?`${new Intl.NumberFormat("en-GB",{notation:"compact"}).format(s.voteCount)} votes`:null;return(0,t.jsxs)("span",{className:`${l.default.rating} ${n?l.default.compact:""}`,"aria-label":`TMDB audience rating: ${o}${c?`, from ${c}`:""}`,title:"TMDB audience rating; this is user-vote data, not an HB Reviews score",children:[(0,t.jsx)(a.Star,{size:n?13:15,"aria-hidden":"true"}),(0,t.jsx)("span",{children:"TMDB audience"}),(0,t.jsx)("strong",{children:o}),!n&&c?(0,t.jsx)("small",{children:c}):null]})}],82243)},60750,74370,e=>{"use strict";var t=e.i(89831);e.s(["EmptyState",0,function({title:e,body:a}){return(0,t.jsxs)("div",{className:"state-box",children:[(0,t.jsx)("h3",{children:e}),(0,t.jsx)("p",{children:a})]})}],60750);let a={Yes:"good",Sometimes:"mid",Rare:"mid",No:"low"};e.s(["EntertainmentBadge",0,function({value:e}){return(0,t.jsxs)("span",{className:`entertainment-badge ${a[e]}`,children:["Entertainment Value: ",e]})}],74370)},42682,e=>{"use strict";let t=(0,e.i(78145).default)("refresh-cw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);e.s(["RefreshCw",0,t],42682)},85057,e=>{"use strict";let t=(0,e.i(78145).default)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);e.s(["AlertTriangle",0,t],85057)},89336,e=>{"use strict";let t=(0,e.i(78145).default)("shield-check",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);e.s(["ShieldCheck",0,t],89336)},42127,e=>{"use strict";let t=(0,e.i(78145).default)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);e.s(["CheckCircle2",0,t],42127)},15147,e=>{"use strict";var t=e.i(89831),a=e.i(42127),r=e.i(42682),i=e.i(214),n=e.i(83491),l=e.i(36572),s=e.i(49264),o=e.i(37348),c=e.i(22953);e.s(["GenerationStateActions",0,function({tmdbId:e,mediaType:d,title:u,reviewSlug:h,compact:m=!1}){let v=!!h,[g,p]=(0,l.useState)("idle"),[f,y]=(0,l.useState)(null),[w,b]=(0,l.useState)(""),[j,x]=(0,l.useState)(null),k=(0,l.useRef)(!1),R="working"===g||"recovering"===g;async function _(){if(!v||k.current)return;k.current=!0;let t=Date.now(),a={tmdbId:e,mediaType:d,forceRefresh:!0};p("working"),y(t),b(""),x(null),(0,o.storePendingReviewGeneration)({request:a,startedAt:t}),(0,s.trackAnalyticsEvent)("generation_started",{media_type:d,mode:"regenerate",surface:"title_generation_cta",tmdb_id:e}),await (0,o.waitForGenerationOverlayPaint)();try{let{review:r}=await (0,o.requestReviewGeneration)(a,{startedAt:t});await (0,o.waitForGenerationOverlay)(t),(0,o.clearPendingReviewGeneration)(t),(0,s.trackAnalyticsEvent)("generation_succeeded",{media_type:d,mode:"regenerate",surface:"title_generation_cta",tmdb_id:e}),window.location.assign(`/review/${r.slug}`);return}catch(r){if(await (0,o.waitForGenerationOverlay)(t),r instanceof o.ReviewGenerationRequestError&&r.interrupted){p("recovering");let i=await (0,o.recoverCompletedReview)({request:a,startedAt:t,jobId:r.jobId});if(i){(0,o.clearPendingReviewGeneration)(t),(0,s.trackAnalyticsEvent)("generation_succeeded",{media_type:d,mode:"regenerate",surface:"title_generation_cta_recovery",tmdb_id:e}),window.location.assign(`/review/${i.slug}`);return}}(0,o.clearPendingReviewGeneration)(t),p("error"),b(r instanceof Error?r.message:"HB could not regenerate this review yet."),x(r instanceof o.ReviewGenerationRequestError?r.requestId:null),(0,s.trackAnalyticsEvent)("generation_failed",{media_type:d,mode:"regenerate",surface:"title_generation_cta",tmdb_id:e})}finally{k.current=!1}}return(0,t.jsxs)("div",{className:`generation-state-actions${m?" compact":""}`,"aria-label":`${u} review status and actions`,children:[(0,t.jsxs)("span",{className:v?"generation-state generated":"generation-state pending",children:[v?(0,t.jsx)(a.CheckCircle2,{size:14,"aria-hidden":"true"}):(0,t.jsx)(i.Sparkles,{size:14,"aria-hidden":"true"}),v?"Review generated":"Review not generated"]}),(0,t.jsxs)("div",{children:[h?(0,t.jsx)(n.default,{className:"generation-read-action",href:`/review/${h}`,prefetch:!1,children:"Read review"}):null,v?(0,t.jsxs)("button",{className:"generation-regenerate-action",type:"button",onClick:function(){v&&"working"!==g&&"recovering"!==g&&(p("confirming"),y(null),b(""),x(null))},disabled:R,children:[(0,t.jsx)(r.RefreshCw,{className:R?"spin":void 0,size:14,"aria-hidden":"true"}),R?"Regenerating":"Regenerate"]}):(0,t.jsxs)(n.default,{className:"generation-primary-action",href:function({tmdbId:e,mediaType:t,title:a}){let r=new URLSearchParams({q:a,type:t,tmdbId:String(e),action:"generate"});return`/search?${r.toString()}`}({tmdbId:e,mediaType:d,title:u}),prefetch:!1,children:[(0,t.jsx)(i.Sparkles,{size:14,"aria-hidden":"true"}),"Generate review"]})]}),"idle"!==g?(0,t.jsx)(c.RegenerationOverlay,{status:g,title:u,startedAt:f,message:w,requestId:j,onConfirm:"confirming"===g?()=>void _():void 0,onRetry:"error"===g?()=>void _():void 0,onClose:"confirming"===g||"error"===g?function(){("confirming"===g||"error"===g)&&(p("idle"),y(null),b(""),x(null))}:void 0}):null]})}])},9802,e=>{"use strict";
1let t=(0,e.i(78145).default)("sliders-horizontal",[["path",{d:"M10 5H3",key:"1qgfaw"}],["path",{d:"M12 19H3",key:"yhmn1j"}],["path",{d:"M14 3v4",key:"1sua03"}],["path",{d:"M16 17v4",key:"1q0r14"}],["path",{d:"M21 12h-9",key:"1o4lsq"}],["path",{d:"M21 19h-5",key:"1rlt1p"}],["path",{d:"M21 5h-7",key:"1oszz2"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M8 12H3",key:"a7s4jb"}]]);e.s(["SlidersHorizontal",0,t],9802)},96450,e=>{"use strict";var t=e.i(89831),a=e.i(684),r=e.i(9802),i=e.i(51337),n=e.i(36572),l=e.i(63576),s=e.i(71030),o=e.i(60750);let c=(0,e.i(78145).default)("arrow-up-right",[["path",{d:"M7 7h10v10",key:"1tivn9"}],["path",{d:"M7 17 17 7",key:"1vkiza"}]]);var d=e.i(83491),u=e.i(54259);function h(e,t="backdrop"){let a=function(e,t="backdrop"){let a="poster"===t?e.posterPath??e.backdropPath:e.backdropPath??e.posterPath;if(a)return(0,u.buildImageUrl)(a,"poster"===t?"w780":"w1280");let r=e.sourceMetadata?.mockArtworkSeed;return"string"==typeof r?(0,u.buildMockArtworkUrl)(r,"poster"===t?900:1400,"poster"===t?1200:800):null}(e,t);return a?{"--artwork":`url("${a}")`}:void 0}var m=e.i(69932),v=e.i(45176),g=e.i(74370),p=e.i(15147),f=e.i(82243);function y({review:e,compact:a=!1}){let r=(0,v.tmdbAudienceRatingFromTitle)(e.title);return a?(0,t.jsxs)("article",{"data-hb-return-anchor":e.slug,className:"review-tile review-tile-compact",style:h(e.title),children:[(0,t.jsx)("span",{className:"media-type-label",children:e.reviewKind}),(0,t.jsxs)(d.default,{className:"review-tile-compact-link",href:`/review/${e.slug}`,prefetch:!1,"aria-label":`Open generated review for ${e.title.title}`,children:[(0,t.jsxs)("div",{className:"review-tile-compact-copy",children:[(0,t.jsx)("h3",{children:e.title.title}),e.title.genres.length?(0,t.jsx)("span",{className:"review-tile-genres",children:e.title.genres.slice(0,3).join(" · ")}):null,(0,t.jsxs)("strong",{className:"review-tile-compact-score",children:["HB ",(0,m.formatScore)(e.overallRating),"/5"]})]}),(0,t.jsxs)("span",{className:"review-tile-compact-open",children:["Open review ",(0,t.jsx)(c,{size:16,"aria-hidden":"true"})]})]})]}):(0,t.jsxs)("article",{"data-hb-return-anchor":e.slug,className:"review-tile review-tile-with-actions",style:h(e.title),children:[(0,t.jsx)("span",{className:"media-type-label",children:e.reviewKind}),(0,t.jsx)(d.default,{className:"review-tile-main",href:`/review/${e.slug}`,prefetch:!1,"aria-label":`Read generated review for ${e.title.title}`,children:(0,t.jsxs)("div",{className:"review-tile-copy",children:[(0,t.jsx)("h3",{children:e.title.title}),e.title.genres.length?(0,t.jsx)("span",{className:"review-tile-genres",children:e.title.genres.slice(0,3).join(" · ")}):null,(0,t.jsx)("p",{children:e.shortVerdict}),(0,t.jsxs)("div",{className:"tile-meta",children:[(0,t.jsxs)("strong",{children:[(0,m.formatScore)(e.overallRating),"/5"]}),(0,t.jsx)(g.EntertainmentBadge,{value:e.entertainmentValue}),(0,t.jsx)(f.TmdbAudienceRating,{average:r.average,voteCount:r.voteCount,compact:!0}),(0,t.jsxs)("span",{className:"cache-badge",children:[e.sourceSummary.length," ",1===e.sourceSummary.length?"source":"sources"]})]})]})}),(0,t.jsx)(p.GenerationStateActions,{tmdbId:e.title.tmdbId,mediaType:e.title.mediaType,title:e.title.title,reviewSlug:e.slug,compact:!0})]})}let w=[{value:"latest",label:"Latest",description:"Newest release dates first"},{value:"recommended",label:"Recommended",description:"HB says these are worth watching"},{value:"top",label:"Top rated",description:"Highest HB scores first"}],b=[{value:"all",label:"All"},{value:"movie",label:"Movies"},{value:"tv",label:"Series"}],j=[{value:"all",label:"Any entertainment value"},{value:"Yes",label:"Yes · recommended"},{value:"Sometimes",label:"Sometimes"},{value:"Rare",label:"Rare"},{value:"No",label:"No"}],x=[{value:0,label:"Any rating"},{value:3,label:"3 or higher"},{value:4,label:"4 or higher"}];function k(e,t){let a=new URLSearchParams({page:String(t),view:e.view,media:e.media,genre:e.genre,entertainment:e.entertainment,minimumRating:String(e.minimumRating)});return`/api/reviews/latest?${a.toString()}`}function R({initialPage:e}
1){let[c,d]=(0,n.useState)(e.reviews),[u,h]=(0,n.useState)(e.filters),[m,v]=(0,n.useState)(e.filters),[g,p]=(0,n.useState)(e.genres),[f,_]=(0,n.useState)(e.total),[N,S]=(0,n.useState)(e.page),[C,M]=(0,l.useNavigationUiState)("latest-loaded-page",e.page),[G,A]=(0,n.useState)(e.hasMore),[$,T]=(0,n.useState)(0===e.total&&0===e.reviews.length),[E,z]=(0,n.useState)(!1),[B,O]=(0,n.useState)(""),H=(0,n.useRef)(0),q=(0,n.useRef)(null),L=(0,n.useRef)(null),P=(0,n.useRef)(null),X=(0,s.useBackDismiss)(E,()=>z(!1),"latest-filters");async function F(e,t=0,a=!1){var r;let i="recommended"===e.view?{...e,entertainment:"all"}:"top"===e.view?{...e,minimumRating:0}:e,n=++H.current;T(!0),O("");try{let e,l=await fetch(k(i,t)),s=await l.json();if(!l.ok)throw Error(s.error||"The catalogue could not be loaded.");if(n!==H.current)return;d(e=>a?[...e,...s.reviews]:s.reviews),h(s.filters),v(s.filters),p(s.genres),_(s.total),S(s.page),M(s.page),A(s.hasMore),r=s.filters,e=new URLSearchParams,"latest"!==r.view&&e.set("view",r.view),"all"!==r.media&&e.set("type",r.media),"all"!==r.genre&&e.set("genre",r.genre),"all"!==r.entertainment&&e.set("entertainment",r.entertainment),r.minimumRating&&e.set("rating",String(r.minimumRating)),window.history.replaceState(window.history.state,"",e.size?`/latest?${e.toString()}`:"/latest")}catch(e){if(n!==H.current)return;O(e instanceof Error?e.message:"The catalogue could not be loaded.")}finally{n===H.current&&T(!1)}}(0,n.useEffect)(()=>{if(0!==e.total||0!==c.length)return;let t=++H.current,a=!0;return fetch(k(e.filters,0),{cache:"no-store"}).then(async e=>{let r=await e.json();if(!e.ok)throw Error(r.error||"The catalogue could not be loaded.");a&&t===H.current&&(d(r.reviews),h(r.filters),v(r.filters),p(r.genres),_(r.total),S(r.page),M(r.page),A(r.hasMore))}).catch(e=>{a&&t===H.current&&O(e instanceof Error?e.message:"The catalogue could not be loaded.")}).finally(()=>{a&&t===H.current&&T(!1)}),()=>{a=!1}},[e,c.length,M]),(0,n.useEffect)(()=>{let t=Math.max(e.page,Math.floor(C));if(t<=e.page||q.current===t)return;q.current=t;let a=++H.current,r=!0;return T(!0),O(""),Promise.all(Array.from({length:t-e.page},(t,a)=>e.page+a+1).map(async t=>{let a=await fetch(k(e.filters,t)),r=await a.json();if(!a.ok)throw Error(r.error||"The catalogue could not be restored.");return r})).then(t=>{if(!r||a!==H.current||!t.length)return;let i=t[t.length-1];d([...e.reviews,...t.flatMap(e=>e.reviews)]),h(i.filters),v(i.filters),p(i.genres),_(i.total),S(i.page),A(i.hasMore)}).catch(e=>{r&&a===H.current&&O(e instanceof Error?e.message:"The catalogue could not be restored.")}).finally(()=>{r&&a===H.current&&T(!1)}),()=>{r=!1,q.current===t&&(q.current=null)}},[e,C]),(0,n.useEffect)(()=>{if(!E)return;let e=document.body.style.overflow,t=L.current,a=e=>{"Escape"===e.key&&X()};document.body.style.overflow="hidden",window.addEventListener("keydown",a);let r=window.requestAnimationFrame(()=>P.current?.focus());return()=>{window.cancelAnimationFrame(r),document.body.style.overflow=e,window.removeEventListener("keydown",a),t?.focus()}},[X,E]);let I=["all"!==u.genre,"all"!==u.entertainment,u.minimumRating>0].filter(Boolean).length,Q=f===c.length?`${f} reviews`:`Showing ${c.length} of ${f} reviews`,D=function(e,t,a=20){return Math.max(0,Math.min(a,t-e))}(c.length,f,e.pageSize);return(0,t.jsxs)("div",{className:"latest-explorer","aria-busy":$,children:[(0,t.jsxs)("section",{className:"latest-discovery","aria-label":"Browse the review catalogue",children:[(0,t.jsx)("div",{className:"latest-view-tabs","aria-label":"Catalogue view",children:w.map(e=>(0,t.jsx)("button",{className:u.view===e.value?"active":"",type:"button","aria-pressed":u.view===e.value,title:e.description,onClick:()=>{var t;return t=e.value,void F({...u,view:t})},disabled:$,children:e.label},e.value))}),(0,t.jsxs)("div",{className:"latest-toolbar",children:[(0,t.jsx)("div",{className:"latest-media-tabs","aria-label":"Filter by title type",children:b.map(e=>(0,t.jsx)("button",{className:u.media===e.value?"active":"",type:"button","aria-pressed":u.media===e.value,onClick:()=>{var t;return t=e.value,void F({...u,media:t})},disabled:$,children:e.label},e.value))}),(0,t.jsxs)("button",{ref:L,className:"latest-filter-button",type:"button",onClick:function(){v(u),z(!0)},children:[(0,t.jsx)(r.SlidersHorizontal,{"aria-hidden":"true"}),"Filters",I?(0,t.jsx)("span",{children:I}):null]})]}),(0,t.jsxs)("div",{className:"latest-result-summary",children:[(0,t.jsx)("span",{role:"status",children:$?"Upd
1ating catalogue…":Q}),(0,t.jsx)("small",{children:w.find(e=>e.value===u.view)?.description})]}),I?(0,t.jsxs)("div",{className:"latest-active-filters","aria-label":"Applied filters",children:["all"!==u.genre?(0,t.jsxs)("button",{type:"button",onClick:()=>void F({...u,genre:"all"}),children:[u.genre,(0,t.jsx)(i.X,{"aria-hidden":"true"})]}):null,"all"!==u.entertainment?(0,t.jsxs)("button",{type:"button",onClick:()=>void F({...u,entertainment:"all"}),children:["Entertainment: ",u.entertainment,(0,t.jsx)(i.X,{"aria-hidden":"true"})]}):null,u.minimumRating?(0,t.jsxs)("button",{type:"button",onClick:()=>void F({...u,minimumRating:0}),children:["Rated ",u.minimumRating,"+",(0,t.jsx)(i.X,{"aria-hidden":"true"})]}):null,(0,t.jsx)("button",{className:"latest-clear-inline",type:"button",onClick:function(){let e={...u,genre:"all",entertainment:"all",minimumRating:0};X(()=>void F(e))},children:"Clear all"})]}):null]}),B?(0,t.jsx)("p",{className:"latest-error",role:"alert",children:B}):null,c.length?(0,t.jsx)("div",{className:"latest-grid",children:c.map(e=>(0,t.jsx)(y,{review:e},e.slug))}):$?(0,t.jsxs)("div",{className:"latest-loading",children:[(0,t.jsx)(a.LoaderCircle,{"aria-hidden":"true"})," Loading reviews"]}):(0,t.jsx)(o.EmptyState,{title:"No matching reviews",body:"Clear a filter or choose another catalogue view."}),G?(0,t.jsx)("button",{className:"load-more-reviews",type:"button",disabled:$,onClick:()=>void F(u,N+1,!0),children:$?"Loading…":`Load ${D} more`}):null,E?(0,t.jsx)("div",{className:"latest-filter-overlay",onMouseDown:e=>{e.target===e.currentTarget&&X()},children:(0,t.jsxs)("section",{className:"latest-filter-sheet",role:"dialog","aria-modal":"true","aria-labelledby":"latest-filter-title",children:[(0,t.jsxs)("header",{children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{children:"Refine your catalogue"}),(0,t.jsx)("h2",{id:"latest-filter-title",children:"Filters"})]}),(0,t.jsx)("button",{ref:P,type:"button","aria-label":"Close filters",onClick:()=>X(),children:(0,t.jsx)(i.X,{"aria-hidden":"true"})})]}),(0,t.jsxs)("div",{className:"latest-filter-fields",children:[(0,t.jsxs)("label",{children:[(0,t.jsx)("span",{children:"Genre"}),(0,t.jsxs)("select",{value:m.genre,onChange:e=>v({...m,genre:e.target.value}),children:[(0,t.jsx)("option",{value:"all",children:"All genres"}),g.map(e=>(0,t.jsx)("option",{value:e,children:e},e))]})]}),"recommended"!==m.view?(0,t.jsxs)("label",{children:[(0,t.jsx)("span",{children:"Entertainment value"}),(0,t.jsx)("select",{value:m.entertainment,onChange:e=>v({...m,entertainment:e.target.value}),children:j.map(e=>(0,t.jsx)("option",{value:e.value,children:e.label},e.value))})]}):(0,t.jsx)("p",{className:"latest-filter-note",children:"Recommended already includes only titles HB considers worth watching."}),"top"!==m.view?(0,t.jsxs)("label",{children:[(0,t.jsx)("span",{children:"Minimum HB rating"}),(0,t.jsx)("select",{value:m.minimumRating,onChange:e=>v({...m,minimumRating:Number(e.target.value)}),children:x.map(e=>(0,t.jsx)("option",{value:e.value,children:e.label},e.value))})]}):(0,t.jsx)("p",{className:"latest-filter-note",children:"Top rated already orders the complete selection from highest score to lowest."})]}),(0,t.jsxs)("footer",{children:[(0,t.jsx)("button",{className:"latest-sheet-clear",type:"button",onClick:()=>v({...m,genre:"all",entertainment:"all",minimumRating:0}),children:"Reset"}),(0,t.jsx)("button",{className:"latest-sheet-apply",type:"button",onClick:function(){X(()=>void F(m))},children:"Show reviews"})]})]})}):null]})}e.s(["LatestReviewsGrid",0,function(e){return e.reviews?(0,t.jsx)("div",{className:"latest-grid",children:e.reviews.map(a=>(0,t.jsx)(y,{review:a,compact:e.compact},a.slug))}):(0,t.jsx)(R,{initialPage:e.initialPage})}],96450)}]);

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.