1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5582],{35582:(e,s,a)=>{a.r(s),a.d(s,{default:()=>d});var l=a(46600),A=a(10788),t=a(24950),r=a.n(t),c=a(20730),o=a(59929),i=a(76244),n=a(30245);function d(e){let{currentToolId:s,categorySlug:a,subcategorySlug:t,tags:d}=e,[x,h]=(0,A.useState)([]),[g,m]=(0,A.useState)(!0);return((0,A.useEffect)(()=>{(async()=>{try{let e=new URLSearchParams({exclude:s.toString(),category:a,subcategory:t,tags:d.join(","),limit:"6"}),l=await fetch("/api/tools/related?".concat(e));if(l.ok){let{data:e}=await l.json();h(e)}}catch(e){console.error("Failed to fetch related tools:",e)}finally{m(!1)}})()},[s,a,t,d]),g)?(0,l.jsxs)(o.Zp,{children:[(0,l.jsx)(o.aR,{children:(0,l.jsx)(o.ZB,{children:"Related Tools"})}),(0,l.jsx)(o.Wu,{children:(0,l.jsx)("div",{className:"space-y-4",children:[void 0,void 0,void 0].map((e,s)=>(0,l.jsxs)("div",{className:"animate-pulse flex space-x-3",children:[(0,l.jsx)("div",{className:"w-12 h-12 bg-gray-200 rounded-lg"}),(0,l.jsxs)("div",{className:"flex-1 space-y-2",children:[(0,l.jsx)("div",{className:"h-4 bg-gray-200 rounded w-3/4"}),(0,l.jsx)("div",{className:"h-3 bg-gray-200 rounded w-1/2"})]})]},s))})})]}):0===x.length?null:(0,l.jsxs)(o.Zp,{children:[(0,l.jsx)(o.aR,{children:(0,l.jsx)(o.ZB,{children:"Related AI Tools"})}),(0,l.jsxs)(o.Wu,{children:[(0,l.jsx)("div",{className:"space-y-4",children:x.map(e=>{var s;return(0,l.jsx)(r(),{href:"/tools/".concat(e.slug),className:"block hover:bg-gray-50 rounded-lg p-3 transition-colors",children:(0,l.jsxs)("div",{className:"flex items-start space-x-3",children:[(0,l.jsx)("div",{className:"w-12 h-12 relative rounded-lg overflow-hidden border flex-shrink-0",children:e.logoUrl?(0,l.jsx)(c.default,{src:e.logoUrl,alt:"".concat(e.name," logo - AI Tool"),fill:!0,className:"object-cover",loading:"lazy",placeholder:"blur",blurDataURL:"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAIAAoDASIAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAAAAv/xAAhEAACAQMDBQAAAAAAAAAAAAABAgMABAUGIWGRkqGx0f/EABUBAQEAAAAAAAAAAAAAAAAAAAMF/8QAGhEAAgIDAAAAAAAAAAAAAAAAAAECEgMRkf/aAAwDAQACEQMRAD8AltJagyeH0AthI5xdrLcNM91BF5pX2HaH9bcfaSXWGaRmknyJckliyjqTzSlT54b6bk+h0R//2Q==",sizes:"48px"}):(0,l.jsx)("div",{className:"w-full h-full bg-gradient-to-br from-gray-100 to-gray-200 flex items-center justify-center text-gray-500 font-medium text-sm",children:e.name.charAt(0)})}),(0,l.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,l.jsx)("h4",{className:"font-medium text-sm truncate",children:e.name}),(0,l.jsx)("p",{className:"text-xs text-muted-foreground line-clamp-2 mt-1",children:e.shortDescription}),(0,l.jsxs)("div",{className:"flex items-center justify-between mt-2",children:[(0,l.jsxs)("div",{className:"flex items-center space-x-1",children:[(0,l.jsx)(n.A,{className:"w-3 h-3 fill-yellow-400 text-yellow-400"}),(0,l.jsx)("span",{className:"text-xs font-medium",children:(null==(s=e.rating)?void 0:s.toFixed(1))||"0.0"}),(0,l.jsxs)("span",{className:"text-xs text-muted-foreground",children:["(",e.reviewCount||0,")"]})]}),(0,l.jsx)(i.E,{variant:"free"===e.pricingModel?"secondary":"outline",className:"text-xs",children:e.pricingModel||"Unknown"})]})]})]})},e.id)})}),(0,l.jsx)("div",{className:"mt-6 pt-4 border-t",children:(0,l.jsx)("div",{className:"text-center",children:(0,l.jsx)(r(),{href:"/categorys/".concat(a),className:"text-sm text-primary hover:underline",children:"View all tools in this category â"})})})]})]})}}}]);
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.