PageSourceSearch

https://gametrack.app/assets/GameReviews.1867aab1.js

js gametrack.app collected 2026-10-02 10:18:46 UTC 7,818 bytes, 1 lines download raw bytes

1import{a5 as f,o,C as b,a6 as m,a0 as w,a as t,l as r,c as l,D as x,t as d,ac as R,V as y,ad as k,ae as I,af as $,ag as D,ah as C,ai as j,q as u,a9 as p,p as g,F as v,k as _,aj as S,a1 as L,W as U,y as N,Y as z}from"./index.2c9b2b2c.js";const B={class:"flex gap-4"},O={class:"w-12 h-12 rounded-xl overflow-hidden bg-surface-elevated hover:ring-2 hover:ring-accent-purple transition-all"},Y=["src","alt"],E={key:1,class:"w-full h-full flex items-center justify-center text-muted"},J={class:"flex-1 min-w-0"},A={class:"flex items-start justify-between gap-3 mb-3"},F={class:"min-w-0"},M={class:"font-semibold text-white truncate"},T={class:"text-sm text-muted"},V={class:"text-white/80 leading-relaxed"},G={props:{id:String,name:String,username:String,profileImage:String,rating:Number,platform:String,review:String,date:Object},methods:{setDate(s){return w(new Date(0).setUTCSeconds(s))}}},P=Object.assign(G,{__name:"GameReview",setup(s){return(e,a)=>{const c=f("font-awesome-icon"),i=f("RouterLink");return o(),b(i,{to:{path:`/user/${s.username}/reviews/${s.id}`},class:"block glass rounded-2xl p-5 hover:bg-white/10 transition-colors"},{default:m(()=>[t("div",B,[r(i,{to:{path:`/user/${s.username}`},class:"flex-shrink-0",onClick:a[0]||(a[0]=x(()=>{},["stop"]))},{default:m(()=>[t("div",O,[s.profileImage?(o(),l("img",{key:0,src:s.profileImage,alt:s.name,class:"w-full h-full object-cover"},null,8,Y)):(o(),l("div",E,[r(c,{icon:["fas","user"]})]))])]),_:1},8,["to"]),t("div",J,[t("div",A,[t("div",F,[t("p",M,d(s.name),1),t("time",T,d(e.setDate(s.date.seconds))+" ago ",1)]),r(R,{rating:s.rating},null,8,["rating"])]),t("p",V,d(s.review),1)])])]),_:1},8,["to"])}}}),X={class:"min-h-screen"},Z={class:"relative h-[45vh] min-h-[320px]"},K={class:"absolute inset-0 overflow-hidden"},W=["src","alt"],q={key:1,class:"w-full h-full bg-surface-elevated"},H={class:"relative"},Q={class:"container"},ee={class:"flex flex-col sm:flex-row gap-6 -mt-32 sm:-mt-40 mb-8"},te={class:"aspect-3/4 rounded-2xl overflow-hidden shadow-2xl glow-purple"},ae={class:"flex-1 sm:pt-16"},se={class:"text-3xl sm:text-4xl lg:text-5xl font-extrabold mb-2 leading-tight"},ie={class:"gradient-text group-hover:opacity-80 transition-opacity"},oe={key:0,class:"text-muted text-lg"},le={key:0,class:"glass rounded-2xl p-6 mb-8"},ne={class:"flex items-center gap-8"},re={class:"flex items-center gap-4 flex-shrink-0"},de={class:"w-20 h-20 rounded-2xl bg-gradient-to-br from-accent-purple to-accent-blue flex items-center justify-center"},ce={class:"text-3xl font-bold text-white"},ge={class:"flex gap-1 mb-1"},me={class:"text-muted"},he={class:"flex-1 h-24 hidden sm:block"},ue={class:"space-y-4 pb-16"},fe={class:"text-xl font-bold text-white mb-6"},pe={key:0,class:"glass rounded-2xl p-12 text-center"},ve=y.firestore(),_e="https://ycmzmhlgzdchxwwrxofh.supabase.co",be="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InljbXptaGxnemRjaHh3d3J4b2ZoIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NjE5Nzc5ODYsImV4cCI6MjA3NzU1Mzk4Nn0.UvCildPzOYMFY_tEl47gyvtKbKZkJpjX0gWMpEUUNV8";function we(s,e){return z.post(`${_e}/functions/v1/igdb-proxy`,{endpoint:s,body:e},{headers:{Authorization:`Bearer ${be}`,"Content-Type":"application/json"}})}const xe={data(){return{loading:!0,gameID:"",name:"",posterURL:"",screenshotURL:"",firstReleaseYear:"",gameReviews:[],gameRatings:[],releaseDate:Date,chartLoaded:!1,chartOptions:{responsive:!0,maintainAspectRatio:!1,scales:{x:{display:!0,grid:{display:!1},ticks:{color:"#a1a1aa",font:{size:11}}},y:{display:!1}},plugins:{legend:{display:!1},tooltip:{enabled:!1}}}}},computed:{chartData(){return{labels:["1","2","3","4","5","6","7","8","9","10"],datasets:[{backgroundColor:"#3b82f6",borderRadius:4,data:[]}]}},validRatings(){return this.gameRatings.filter(s=>s>0)},averageRating(){return this.validRatings.length?(this.validRatings.reduce((e,a)=>e+a,0)/this.validRatings.length).toFixed(1):0}},head(){return{title:`Reviews of ${this.name} | GameTrack`}},methods:{buildChartData(){if(!this.validRatings.length)return;let s=[],e={};for(const a of this.validRatings)e[a]=e[a]?e[a]+1:1;for(let a=1;a<11;a++)s.push(e[a]||0);this.chartData.datasets[0]={...this.chartData.datasets[0],data:s},this.chartLoaded=!0},getToken(){const s=this.$route.params.gameID;we("games",`where id = ${s}; fields name, cover.image_id, screenshots.image_id, first_release_date;`).then(e=>{var c,i;this.gameID=e.data[0].id,this.name=e.data[0].name,this.posterURL=`//images.igdb.com/igdb/image/upload/t_cover_big_2x/${(c=e.data[0].cover)==null?void 0:c.image_id}.jpg`,(i=e.data[0].screenshots)!=null&&i.length&&(this.screenshotURL=`//images.igdb.com/igdb/image/upload/t_1080p/${e.data[0].screenshots[0].image_id}.jpg`);let a=new Date(0);a.setUTCSeconds(e.data[0].first_release_date),this.releaseDate=a,this.firstReleaseYear=L(a,"yyyy"),ve.collection("reviews").doc(s).collection("gameReviews").orderBy("date","desc").get().then(h=>{h.forEach(n=>{this.gameRatings.push(n.data().rating),n.data().text&&this.gameReviews.push({id:n.data().id,name:n.data().user.name,username:n.data().user.username,profileImage:n.data().user.displayPicture,rating:n.data().rating,platform:n.data().gamePlatform,review:n.data().text,date:n.data().date})}),this.buildChartData(),this.loading=!1})}).catch(e=>{console.error(e),this.loading=!1})}},mounted(){this.getToken()}},ye=Object.assign(xe,{__name:"GameReviews",setup(s){return k.register(I,$,D,C,j),(e,a)=>{const c=f("font-awesome-icon");return o(),l("div",X,[t("section",Z,[t("div",K,[e.screenshotURL?(o(),l("img",{key:0,src:e.screenshotURL,alt:`Screenshot from ${e.name}`,class:"w-full h-full object-cover"},null,8,W)):(o(),l("div",q))]),a[0]||(a[0]=t("div",{class:"absolute inset-0 bg-gradient-to-t from-surface via-surface/70 to-surface/30"},null,-1)),a[1]||(a[1]=t("div",{class:"absolute inset-0 bg-gradient-to-r from-surface/50 to-transparent"},null,-1)),a[2]||(a[2]=t("div",{class:"absolute top-1/4 right-1/4 w-64 h-64 bg-accent-purple/20 rounded-full blur-3xl"},null,-1)),a[3]||(a[3]=t("div",{class:"absolute bottom-1/3 left-1/3 w-48 h-48 bg-accent-blue/20 rounded-full blur-3xl"},null,-1))]),t("section",H,[t("div",Q,[t("div",ee,[r(u(p),{to:{path:`/game/${e.gameID}`},class:"flex-shrink-0 w-32 sm:w-44 z-10 group hover:scale-105 transition-transform duration-300"},{default:m(()=>[t("div",te,[r(U,{url:e.posterURL,alt:e.name,width:"352",height:"470",extraClass:"w-full h-full object-cover"},null,8,["url","alt"])])]),_:1},8,["to"]),t("div",ae,[a[4]||(a[4]=t("p",{class:"text-muted mb-2"},"Reviews for",-1)),r(u(p),{to:{path:`/game/${e.gameID}`},class:"block group"},{default:m(()=>[t("h1",se,[t("span",ie,d(e.name),1)])]),_:1},8,["to"]),e.firstReleaseYear?(o(),l("p",oe,d(e.firstReleaseYear),1)):g("",!0)])]),e.validRatings.length>=5?(o(),l("div",le,[t("div",ne,[t("div",re,[t("div",de,[t("span",ce,d(e.averageRating),1)]),t("div",null,[t("div",ge,[(o(),l(v,null,_(10,i=>r(c,{key:i,icon:["fas","star"],class:N(["text-sm",i<=Math.round(e.averageRating)?"text-accent-purple":"text-white/20"])},null,8,["class"])),64))]),t("p",me,d(e.validRatings.length)+" ratings",1)])]),t("div",he,[e.chartLoaded?(o(),b(u(S),{key:0,options:e.chartOptions,data:e.chartData},null,8,["options","data"])):g("",!0)])])])):g("",!0),t("div",ue,[t("h2",fe,d(e.gameReviews.length)+" Reviews",1),(o(!0),l(v,null,_(e.gameReviews,(i,h)=>(o(),l("div",{key:h},[r(P,{id:i.id,name:i.name,username:i.username,profileImage:i.profileImage,rating:i.rating,platform:i.platform,review:i.review,date:i.date},null,8,["id","name","username","profileImage","rating","platform","review","date"])]))),128)),!e.loading&&e.gameReviews.length===0?(o(),l("div",pe,[r(c,{icon:["fas","comment-slash"],class:"text-4xl text-muted mb-4"}),a[5]||(a[5]=t("p",{class:"text-muted text-lg"},"No reviews yet",-1))])):g("",!0)])])])])}}});
1export{ye as default};

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.