PageSourceSearch

https://petwellhk.com/assets/UserProfile-Duavc4Eg.js

js petwellhk.com collected 2026-10-06 05:23:43 UTC 4,402 bytes, 1 lines download raw bytes

1import{p as P,r as o,j as e,N as M}from"./react-vendor-BDHNqS4B.js";import{b as w}from"./query-7-WHkg5t.js";import{v as S,b as T}from"./Header-BkbupWq-.js";import{F as I}from"./Footer-CtylQEAH.js";import{U as L}from"./UserReviewList-BdFHL_bd.js";import{u as k,e as q,n as A,b as N}from"./main-m_sUF2N4.js";import{u as B}from"./useSEO-CoArDrdl.js";import{f as $,a as K}from"./userReviewApi-BPRYI5-q.js";import{S as O}from"./star-Dim9pf51.js";import"./amplify-DYDcjoow.js";import"./chevron-right-CpkQxGj-.js";import"./check-DS0-tR9o.js";import"./tag-D40gy_Nl.js";import"./textarea-D7qsgB_p.js";import"./reportService-tEzofQZ6.js";import"./phone-B2rvvDkK.js";import"./type-CVgQCqWZ.js";import"./priceReviewApi-BFijUeFQ.js";const W=["clinic","salon","lodging","restaurant","product"],ne=()=>{var g;const{userId:a=""}=P(),{t:s,i18n:h}=k(),{userInfo:n}=q(),[t,x]=o.useState("all"),u=!!(a&&(n!=null&&n.userId)&&a===n.userId),{data:l,isLoading:y,isError:R}=w({queryKey:["publicClient",a],queryFn:()=>K(a),enabled:!!a&&!u}),{data:i=[],isLoading:F,isError:E}=w({queryKey:["userReviews",a,!1,h.language],queryFn:()=>$(a,{includeAnonymous:!1,language:h.language}),enabled:!!a&&!u}),p=((g=l==null?void 0:l.displayName)==null?void 0:g.trim())||(l==null?void 0:l.firstName)||s("userReviews.unknownUser"),v=S(l==null?void 0:l.profileImage),b=o.useMemo(()=>{if(i.length===0)return null;const r=i.reduce((c,U)=>c+(U.totalRating||0),0);return Math.round(r/i.length*10)/10},[i]),d=o.useMemo(()=>{const r={};for(const c of i)r[c.reviewType]=(r[c.reviewType]||0)+1;return r},[i]),j=o.useMemo(()=>W.filter(r=>(d[r]||0)>0),[d]),_=o.useMemo(()=>t==="all"?i:i.filter(r=>r.reviewType===t),[t,i]);if(B({title:`${p} | PetWell`,description:s("userReviews.publicSeoDescription"),canonicalUrl:`https://petwellhk.com/users/${a}`}),u)return e.jsx(M,{to:"/account",replace:!0});const m=y||F,f=!m&&R&&E,C=!m&&!f&&j.length>1;return e.jsxs("div",{className:"member-profile-page flex min-h-screen flex-col",children:[e.jsx(T,{}),e.jsxs("main",{className:"flex-1",children:[e.jsx("section",{className:"member-profile-hero",children:e.jsx("div",{className:"container mx-auto px-4 py-8 md:py-10",children:e.jsxs("div",{className:"member-profile-shell member-profile-hero__inner",children:[e.jsx("div",{className:"member-profile-avatar",children:v?e.jsx("img",{src:v,alt:"",className:"h-full w-full object-cover"}):e.jsx("span",{"aria-hidden":!0,children:p.charAt(0).toUpperCase()})}),e.jsxs("div",{className:"member-profile-identity min-w-0 flex-1",children:[e.jsx("p",{className:"member-profile-eyebrow",children:s("userReviews.memberBadge")}),e.jsx("h1",{className:"member-profile-name",children:p}),!m&&!f?e.jsxs("p",{className:"member-profile-meta",children:[e.jsx("span",{children:s("userReviews.reviewsCount",{count:i.length})}),b!=null?e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"member-profile-meta__sep","aria-hidden":!0,children:"·"}),e.jsxs("span",{className:"member-profile-meta__rating",children:[e.jsx(O,{className:"h-3.5 w-3.5 fill-current","aria-hidden":!0}),s("userReviews.avgRating",{rating:b.toFixed(1)})]})]}):null]}):null]})]})})}),e.jsx("section",{className:"container mx-auto px-4 py-6 md:py-8",children:e.jsx("div",{className:"member-profile-shell",children:m?e.jsxs("div",{className:"flex items-center justify-center py-16 text-muted-foreground",children:[e.jsx(A,{className:"mr-2 h-5 w-5 animate-spin"}),s("userReviews.loading")]}):f?e.jsx("div",{className:"member-profile-empty",children:s("userReviews.loadFailed")}):e.jsxs(e.Fragment,{children:[C?e.jsxs("div",{className:"member-profile-filters",role:"tablist","aria-label":s("userReviews.filterLabel"),children:[e.jsxs("button",{type:"button",role:"tab","aria-selected":t==="all",className:N("member-profile-filter",t==="all"&&"member-profile-filter--active"),onClick:()=>x("all"),children:[s("userReviews.filterAll"),e.jsx("span",{className:"member-profile-filter__count",children:i.length})]}),j.map(r=>e.jsxs("button",{type:"button",role:"tab","aria-selected":t===r,className:N("member-profile-filter",t===r&&"member-profile-filter--active"),onClick:()=>x(r),children:[s(`userReviews.types.${r}`),e.jsx("span",{className:"member-profile-filter__count",children:d[r]})]},r))]}):null,e.jsx(L,{reviews:_,variant:"journal",emptyMessage:s(t==="all"?"userReviews.publicEmpty":"userReviews.emptyFiltered")})]})})})]}),e.jsx(I,{})]})};export{ne 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.