1import{r as l,j as e,L as f}from"./react-vendor-BDHNqS4B.js";import{u as N,A as g}from"./AccountHomeShell-BmqDkQJS.js";import{U as C}from"./UserReviewList-BdFHL_bd.js";import{u as E,e as A,h as L,n as S,B as v,I as T,b as w}from"./main-m_sUF2N4.js";import{u as _}from"./useSEO-CoArDrdl.js";import{S as k}from"./search-BSw3vufk.js";import"./amplify-DYDcjoow.js";import"./Header-BkbupWq-.js";import"./chevron-right-CpkQxGj-.js";import"./check-DS0-tR9o.js";import"./tag-D40gy_Nl.js";import"./query-7-WHkg5t.js";import"./Footer-CtylQEAH.js";import"./textarea-D7qsgB_p.js";import"./reportService-tEzofQZ6.js";import"./phone-B2rvvDkK.js";import"./type-CVgQCqWZ.js";import"./userReviewApi-BPRYI5-q.js";import"./priceReviewApi-BFijUeFQ.js";import"./camera-DiII9OQn.js";import"./star-Dim9pf51.js";const P=["clinic","salon","lodging","restaurant","product"],te=()=>{const{t}=E(),{isAuthenticated:c}=A(),{openPanel:m}=L(),{data:i=[],isLoading:x}=N(),[r,u]=l.useState("all"),[o,y]=l.useState("");_({title:`${t("userReviews.myReviews")} | PetWell`,description:t("userReviews.mySeoDescription"),canonicalUrl:"https://petwellhk.com/account/reviews",noindex:!0}),l.useEffect(()=>{c===!1&&m("LANDING")},[c,m]);const n=l.useMemo(()=>{const s={};for(const a of i)s[a.reviewType]=(s[a.reviewType]||0)+1;return s},[i]),p=l.useMemo(()=>P.filter(s=>(n[s]||0)>0),[n]),h=l.useMemo(()=>{const s=o.trim().toLowerCase();return i.filter(a=>r!=="all"&&a.reviewType!==r?!1:s?[a.placeName,a.title,a.description].filter(Boolean).join(" ").toLowerCase().includes(s):!0)},[r,o,i]),j=i.length>0&&p.length>1,R=o.trim().length>0,d=i.length===0,b=!d&&h.length===0;return e.jsx(g,{tab:"reviews",children:x?e.jsxs("div",{className:"flex items-center justify-center py-16 text-muted-foreground",children:[e.jsx(S,{className:"mr-2 h-5 w-5 animate-spin"}),t("userReviews.loading")]}):d?e.jsxs("div",{className:"account-home-empty account-home-reveal",children:[e.jsx("h3",{children:t("userReviews.myEmptyTitle")}),e.jsx("p",{children:t("userReviews.myEmptyBody")}),e.jsxs("div",{className:"account-home-empty__actions",children:[e.jsx(v,{asChild:!0,children:e.jsx(f,{to:"/restaurants",children:t("userReviews.emptyCtaRestaurants")})}),e.jsx(v,{variant:"outline",asChild:!0,children:e.jsx(f,{to:"/clinics",children:t("userReviews.emptyCtaClinics")})})]})]}):e.jsxs("div",{className:"account-home-reveal",children:[e.jsxs("div",{className:"account-home-search",children:[e.jsx(k,{"aria-hidden":!0}),e.jsx(T,{value:o,onChange:s=>y(s.target.value),placeholder:t("userReviews.searchPlaceholder"),"aria-label":t("userReviews.searchPlaceholder")})]}),j?e.jsxs("div",{className:"member-profile-filters",role:"tablist","aria-label":t("userReviews.filterLabel"),children:[e.jsxs("button",{type:"button",role:"tab","aria-selected":r==="all",className:w("member-profile-filter",r==="all"&&"member-profile-filter--active"),onClick:()=>u("all"),children:[t("userReviews.filterAll"),e.jsx("span",{className:"member-profile-filter__count",children:i.length})]}),p.map(s=>e.jsxs("button",{type:"button",role:"tab","aria-selected":r===s,className:w("member-profile-filter",r===s&&"member-profile-filter--active"),onClick:()=>u(s),children:[t(`userReviews.types.${s}`),e.jsx("span",{className:"member-profile-filter__count",children:n[s]})]},s))]}):null,b?e.jsx("div",{className:"account-home-empty",children:e.jsx("p",{children:t(R||r!=="all"?"userReviews.emptyFiltered":"userReviews.myEmpty")})}):e.jsx(C,{reviews:h,variant:"journal",showAnonymousBadge:!0})]})})};export{te 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.