1"use strict";(self.webpackChunksavedelete_react=self.webpackChunksavedelete_react||[]).push([[3767],{53767:(e,s,a)=>{a.r(s),a.d(s,{default:()=>G});var t=a(65043),r=a(49367),i=a(36767),l=a(10290);function n(e){return/^https?:\/\//i.test(e)}function o(e){const s=null!==e&&n(e),a=s?encodeURIComponent(e):"";return[{engine:"Google Images",url:s?"https://www.google.com/searchbyimage?image_url=".concat(a):"https://images.google.com",title:s?"Search on Google Images":"Go to Google Images (manual upload)",domain:"images.google.com"},{engine:"Google Lens",url:s?"https://lens.google.com/uploadbyurl?url=".concat(a):"https://lens.google.com",title:s?"Search on Google Lens":"Go to Google Lens (manual upload)",domain:"lens.google.com"},{engine:"Bing Visual Search",url:s?"https://www.bing.com/images/search?view=detailv2&iss=sbi&form=SBIIRP&sbisrc=UrlPaste&q=imgurl:".concat(a):"https://www.bing.com/visualsearch",title:s?"Search on Bing":"Go to Bing (manual upload)",domain:"bing.com"},{engine:"Yandex Images",url:s?"https://yandex.com/images/search?source=collections&rpt=imageview&url=".concat(a):"https://yandex.com/images/",title:s?"Search on Yandex":"Go to Yandex (manual upload)",domain:"yandex.com"},{engine:"TinEye",url:s?"https://tineye.com/search?url=".concat(a):"https://tineye.com/search",title:s?"Search on TinEye":"Go to TinEye (manual upload)",domain:"tineye.com"}]}const c="reverseImageSearchHistory";function d(){return{get:e=>window.localStorage.getItem(e),set:(e,s)=>window.localStorage.setItem(e,s)}}function m(e){if(!e||"object"!==typeof e)return null;const s=e,a="string"===typeof s.id||"number"===typeof s.id?String(s.id):"";if(!a||"string"!==typeof s.timestamp)return null;const t={id:a,timestamp:s.timestamp};"string"===typeof s.fileName&&s.fileName&&(t.fileName=s.fileName);const r="string"===typeof s.image?s.image:void 0,i="string"===typeof s.thumbnail?s.thumbnail:r;i&&i.length<=3e4&&(n(i)||i.startsWith("data:image/"))&&(t.thumbnail=i);const l="string"===typeof s.searchUrl?s.searchUrl:r;return l&&n(l)&&(t.searchUrl=l,"number"===typeof s.expiresAt&&(t.expiresAt=s.expiresAt)),t}function h(e,s){for(let t=s.length;t>=0;t--){const r=s.slice(0,t);try{return e.set(c,JSON.stringify(r)),r}catch(a){}}return[]}var g=a(36107);var u=a(50797),x=a(25040),p=a(247),y=a(43866),f=a(40614),b=a(72313),j=a(7104),v=a(50516),w=a(77819),N=a(22024),S=a(39292),k=a(55731),I=a(70764),C=a(82054),A=a(57856),U=a(87978),R=a(9855),L=a(70067),D=a(21531),F=a(70579);const G=()=>{const[e,s]=(0,t.useState)(null),[a,G]=(0,t.useState)(""),[P,M]=(0,t.useState)(!1),[T,E]=(0,t.useState)([]),[B,O]=(0,t.useState)(!1),[W,H]=(0,t.useState)(null),[Y,q]=(0,t.useState)(null),[J,z]=(0,t.useState)(null),[_,K]=(0,t.useState)(null),[V,Q]=(0,t.useState)([]),[X,Z]=(0,t.useState)(!1),[$,ee]=(0,t.useState)("upload"),{isAuthenticated:se}=(0,i.A)(),[ae,te]=(0,t.useState)([]),[re,ie]=(0,t.useState)(!1),[le,ne]=(0,t.useState)("idle"),[oe,ce]=(0,t.useState)(""),[de,me]=(0,t.useState)(!1);(0,t.useEffect)(()=>{se&&he()},[se]);const he=async()=>{try{const e=await l.A.listReverseSearches();te(e)}catch(W){console.error("Error loading reverse image searches:",W)}},ge=(0,t.useRef)(null),ue=(0,t.useRef)(null);t.useEffect(()=>{const e=d(),{entries:s,migrated:a}=function(e){let s,a;try{s=e.get(c),a=s?JSON.parse(s):null}catch(r){return{entries:[],migrated:!1}}if(!Array.isArray(a))return{entries:[],migrated:!1};const t=a.map(m).filter(e=>null!==e).slice(0,10);return{entries:t,migrated:JSON.stringify(t)!==s}}(e);Q(a?h(e,s):s)},[]);const xe=async(e,s,a,t)=>{var r;const i=a?V.find(e=>e.searchUrl===a):void 0,l=null!==(r=null===i||void 0===i?void 0:i.thumbnail)&&void 0!==r?r:e.startsWith("data:")?await function(e){let s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:160,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:.7;return new Promise(t=>{const r=new Image;r.onload=()=>{try{const{width:e,height:i}=(0,g.Jc)(r.naturalWidth,r.naturalHeight,s),l=document.createElement("canvas");l.width=Math.max(1,e),l.height=Math.max(1,i);const n=l.getContext("2d");if(!n)return t(void 0);n.fillStyle="#ffffff",n.fillRect(0,0,l.width,l.height),n.drawImage(r,0,0,l.width,l.height),t(l.toDataURL("image/jpeg",a))}catch(e){t(void 0)}},r.onerror=()=>t(void 0),r.src=e})}(e):e,n={id:Date.now().toString(),timestamp:(new Date).toISOString()};if(s&&(n.fileName=s),l&&(n.thumbnail=l),a){n.searchUrl=a;const e=null!==t&&void 0!==t?t:null===i||void 0===i?void 0:i.expiresAt;e&&(n.expiresAt=e)}Q(h(d(),function(e,s){const a=e.filter(e=>e.id!==s.id&&!(s.searchUrl&&e.searchUrl===s.searchUrl));return[s,...a].slice(0,10)}(V,n)))},pe=e=>{var s;const a=null===(s=e.target.files)||void 0===s?void 0:s[0];a&&ye(a)},ye=e=>{if(!e.type.startsWith("image/"))return void H("Please select a valid image file");if(e.size>10485760)return void H("File size must be less than 10MB");const a=new FileReader;a.onload=a=>{var t;const r=null===(t=a.target)||void 0===t?void 0:t.result;s(r),q(e.name),z(fe(e.size)),H(null),G("");const i=new Image;i.onload=()=>{K({width:i.width,height:i.height})},i.src=r},a.readAsDataURL(e)},fe=e=>{if(0===e)return"0 Bytes";const s=Math.floor(Math.log(e)/Math.log(1024));return Math.round(e/Math.pow(1024,s)*100)/100+" "+["Bytes","KB","MB"][s]},be=(0,t.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),"dragenter"===e.type||"dragover"===e.type?O(!0):"dragleave"===e.type&&O(!1)},[]),je=(0,t.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),O(!1),e.dataTransfer.files&&e.dataTransfer.files[0]&&ye(e.dataTransfer.files[0])},[]),ve=async()=>
1{if(a)try{H(null),s(a),q(a.split("/").pop()||"image");const e=new Image;e.onload=()=>{K({width:e.width,height:e.height})},e.src=a}catch(e){H("Failed to load image from URL")}else H("Please enter an image URL")},we=()=>{s(null),G(""),q(null),z(null),K(null),E([]),H(null)},Ne=e=>{var a,t;(Z(!1),window.scrollTo({top:0,behavior:"smooth"}),e.searchUrl&&(a=e,t=Date.now(),Boolean(a.searchUrl)&&(void 0===a.expiresAt||t<a.expiresAt)))?(s(e.searchUrl),q(e.fileName||null),z(null),K(null),E(o(e.searchUrl)),H(null)):H("That search has expired: uploaded images are deleted from our server after about an hour. Choose the file again to search it.")};return(0,F.jsxs)("div",{className:"min-h-screen bg-gray-50 py-12",children:[(0,F.jsxs)(r.mg,{children:[(0,F.jsx)("title",{children:"Free Reverse Image Search Tool - Find Similar Images Online | SaveDelete"}),(0,F.jsx)("meta",{name:"description",content:"Search the web using images instead of text. Upload or paste an image URL to find similar images, sources, and information across multiple search engines. 100% free, no login required."}),(0,F.jsx)("meta",{name:"keywords",content:"reverse image search, image search, find similar images, image source finder, visual search, photo search, picture search, image recognition"}),(0,F.jsx)("link",{rel:"canonical",href:"https://savedelete.com/reverse-image-search/"}),(0,F.jsx)("meta",{property:"og:title",content:"Free Reverse Image Search Tool - SaveDelete"}),(0,F.jsx)("meta",{property:"og:description",content:"Find similar images and sources online with our free reverse image search tool."}),(0,F.jsx)("meta",{property:"og:type",content:"website"}),(0,F.jsx)("meta",{property:"og:url",content:"https://savedelete.com/reverse-image-search/"}),(0,F.jsx)("meta",{property:"og:image",content:"https://savedelete.com/images/og-reverse-image-search.jpg"}),(0,F.jsx)("script",{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"SoftwareApplication",name:"SaveDelete Rever
1se Image Search",applicationCategory:"MultimediaApplication",operatingSystem:"All",isAccessibleForFree:!0,datePublished:"2024-04-01",dateModified:"2025-12-15",screenshot:{"@type":"ImageObject",url:"https://savedelete.com/images/og-reverse-image-search.jpg",width:1200,height:630,caption:"Free Reverse Image Search - Find Similar Images Online"},offers:{"@type":"Offer",price:"0",priceCurrency:"USD",availability:"https://schema.org/InStock"},description:"Free reverse image search tool. Upload or paste an image URL to find similar images, sources, and information across Google, Bing, Yandex, and TinEye."})})]}),(0,F.jsxs)("div",{className:"container mx-auto px-4 max-w-6xl",children:[(0,F.jsxs)("div",{className:"text-center mb-8",children:[(0,F.jsx)("h1",{className:"text-4xl font-bold text-gray-900 mb-4",children:"Reverse Image Search"}),(0,F.jsx)("p",{className:"text-xl text-gray-600 max-w-3xl mx-auto",children:"Search the web using images instead of text. Find similar images, sources, and information across multiple search engines."})]}),(0,F.jsxs)("div",{className:"bg-white rounded-xl shadow-lg p-8 mb-8",children:[(0,F.jsx)("div",{className:"flex justify-center mb-6",children:(0,F.jsxs)("div",{className:"inline-flex rounded-lg border border-gray-200 p-1",children:[(0,F.jsxs)("button",{onClick:()=>ee("upload"),className:"px-4 py-2 rounded-md flex items-center space-x-2 transition-colors ".concat("upload"===$?"bg-blue-600 text-white":"text-gray-600 hover:text-gray-900"),children:[(0,F.jsx)(u.A,{className:"w-4 h-4"}),(0,F.jsx)("span",{children:"Upload Image"})]}),(0,F.jsxs)("button",{onClick:()=>ee("url"),className:"px-4 py-2 rounded-md flex items-center space-x-2 transition-colors ".concat("url"===$?"bg-blue-600 text-white":"text-gray-600 hover:text-gray-900"),children:[(0,F.jsx)(x.A,{className:"w-4 h-4"}),(0,F.jsx)("span",{children:"Image URL"})]}),(0,F.jsxs)("button",{onClick:()=>ee("camera"),className:"px-4 py-2 rounded-md flex items-center space-x-2 transition-colors ".concat("camera"===$?"bg-blue-600 text-white":"text-gray-600 hover:text-gray-900"),children:[(0,F.jsx)(p.A,{className:"w-4 h-4"}),(0,F.jsx)("span",{children:"Camera"})]})]})}),"upload"===$&&(0,F.jsxs)("div",{className:"border-2 border-dashed rounded-lg p-8 text-center transition-colors ".concat(B?"border-blue-500 bg-blue-50":"border-gray-300 hover:border-gray-400"),onDragEnter:be,onDragLeave:be,onDragOver:be,onDrop:je,children:[(0,F.jsx)("input",{ref:ge,type:"file",accept:"image/*",onChange:pe,className:"hidden"}),e?(0,F.jsxs)("div",{className:"relative",children:[(0,F.jsx)("img",{src:e,alt:"Selected",className:"max-w-full max-h-96 mx-auto rounded-lg shadow-lg"}),(0,F.jsx)("button",{onClick:we,className:"absolute top-2 right-2 p-2 bg-red-500 text-white rounded-full hover:bg-red-600 transition-colors",children:(0,F.jsx)(f.A,{className:"w-5 h-5"})}),(0,F.jsxs)("div",{className:"mt-4 flex justify-center space-x-4 text-sm text-gray-600",children:[Y&&(0,F.jsxs)("span",{children:["\ud83d\udcc1 ",Y]}),J&&(0,F.jsxs)("span",{children:["\ud83d\udcca ",J]}),_&&(0,F.jsxs)("span",{children:["\ud83d\udcd0 ",_.width," \xd7 ",_.height,"px"]})]}),(0,F.jsxs)("div",{className:"mt-4 flex justify-center space-x-2",children:[(0,F.jsx)("button",{onClick:()=>{e&&navigator.clipboard.writeText(e)},className:"p-2 text-gray-600 hover:text-gray-900 transition-colors",title:"Copy Image",children:(0,F.jsx)(b.A,{className:"w-5 h-5"})}),(0,F.jsx)("button",{onClick:()=>{if(e){const s=document.createElement("a");s.href=e,s.download=Y||"image.jpg",s.click()}},className:"p-2 text-gray-600 hover:text-gray-900 transition-colors",title:"Download Image",children:(0,F.jsx)(j.A,{className:"w-5 h-5"})}),(0,F.jsx)("button",{onClick:()=>{var e;return null===(e=ge.current)||void 0===e?void 0:e.click()},className:"p-2 text-gray-600 hover:text-gray-900 transition-colors",title:"Replace Image",children:(0,F.jsx)(v.A,{className:"w-5 h-5"})})]})]}):(0,F.jsxs)("div",{children:[(0,F.jsx)(y.A,{className:"w-16 h-16 mx-auto text-gray-400 mb-4"}),(0,F.jsx)("p",{className:"text-lg font-medium text-gray-700 mb-2",children:"Drag and drop an image here"}),(0,F.jsx)("p",{className:"text-sm text-gray-500 mb-4",children:"or"}),(0,F.jsx)("button",{onClick:()=>{var e;return null===(e=ge.current)||void 0===e?void 0:e.click()},className:"px-6 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors",children:"Choose File"}),(0,F.jsx)("p",{className:"text-xs text-gray-500 mt-4",children:"Supported formats: JPG, PNG, GIF, BMP, WEBP (Max 10MB)"})]})]}),"url"===$&&(0,F.jsxs)("div",{children:[(0,F.jsxs)("div",{className:"flex space-x-2",children:[(0,F.jsx)("input",{type:"url",value:a,onChange:e=>G(e.target.value),placeholder:"Enter image URL (e.g., https://example.com/image.jpg)",className:"flex-1 px-4 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500",onKeyPress:e=>"Enter"===e.key&&ve()}),(0,F.jsx)("button",{onClick:ve,className:"px-6 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors",children:"Load Image"})]}),e&&"url"===$&&(0,F.jsxs)("div",{className:"mt-6",children:[(0,F.jsx)("img",{src:e,alt:"Selected",className:"max-w-full max-h-96 mx-auto rounded-lg shadow-lg"}),(0,F.jsx)("button",{onClick:we,className:"mt-4 px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600 transition-colors",children:"Clear"})]})]}),"camera"===$&&(0,F.jsxs)("div",{className:"text-center",children:[(0,F.jsx)("input",{ref:ue,type:"file",accept:"image/*",capture:"environment",onChange:pe,className:"hidden"}),e?(0,F.jsxs)("div",{children:[(0,F.jsx)("img",{src:e,alt:"Captured",className:"max-w-full max-h-96 mx-auto rounded-lg shadow-lg"}),(0,F.jsxs)("div",{className:"mt-4 space-x-2",children:[(0,F.jsx)("button",{onClick:()=>{var e;return null===(e=ue.current)||void 0===e?void 0:e.click()},className:"px-4 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors",children:"Retake Photo"}),(0,F.jsx)("button",{onClick:we,className:"px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600 transition-colors",children:"Clear"})]})]}):(0,F.jsxs)("div",{children:[(0,F.jsx)(p.A,{className:"w-16 h-16 mx-auto text-gray-400 mb-4"}),(0,F.jsx)("button",{onClick:()=>{var e;return null===(e=ue.current)||void 0===e?void 0:e.click()},className:"px-6 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors",children:"Take Photo"}),(0,F.jsx)("p",{className:"text-sm text-gray-500 mt-2",children:"Use your device camera to capture an image"})]})]}),W&&(0,F.jsxs)("div",{className:"mt-4 p-4 bg-red-50 border border-red-200 rounded-lg flex items-center space-x-2",children:[(0,F.jsx)(w.A,{className:"w-5 h-5 text-red-500"}),(0,F.jsx)("span",{className:"text-red-700",children:W})]}),e&&(0,F.jsx)("div",{className:"mt-6 text-center",children:(0,F.jsx)("button",{onClick:async()=>
1{if(e){M(!0),H(null),E([]);try{let s,a=e;if(e.startsWith("data:")){const t=await async function(e){var s,a,t,r;let i,l=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(e,s)=>fetch(e,s);try{i=await l("/api/upload-temp-image/",{method:"POST",credentials:"omit",headers:{"Content-Type":"application/json"},body:JSON.stringify({image:e})})}catch(d){return{ok:!1,message:"Could not reach our server to upload your image."}}let o=null;try{o=await i.json()}catch(m){}if(i.ok&&null!==(s=o)&&void 0!==s&&s.success&&"string"===typeof o.url&&n(o.url))return{ok:!0,url:o.url};const c=null!==(a=null===(t=o)||void 0===t?void 0:t.error)&&void 0!==a?a:null===(r=o)||void 0===r?void 0:r.detail;return c&&console.error("upload-temp-image:",i.status,c),{ok:!1,message:"We couldn't upload your image (error ".concat(i.status,").")}}(e);t.ok?(a=t.url,s=Date.now()+33e5):H("".concat(t.message," The buttons below open each search engine's own upload page instead, where you can upload the file yourself."))}const t=n(a)?a:null;E(o(t)),M(!1),await xe(e,Y,t,s)}catch(W){console.error("Search error:",W),H("An error occurred while processing your search. Please try again."),M(!1)}}else H("Please select or provide an image first")},disabled:P,className:"px-8 py-3 bg-green-600 text-white rounded-lg hover:bg-green-700 transition-colors disabled:bg-gray-400 disabled:cursor-not-allowed inline-flex items-center space-x-2",children:P?(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(N.A,{className:"w-5 h-5 animate-spin"}),(0,F.jsx)("span",{children:"Searching..."})]}):(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(S.A,{className:"w-5 h-5"}),(0,F.jsx)("span",{children:"Search Image"})]})})})]}),T.length>0&&(0,F.jsxs)("div",{className:"bg-white rounded-xl shadow-lg p-8 mb-8",children:[(0,F.jsx)("h2",{className:"text-2xl font-bold text-gray-900 mb-6",children:"Search Results"}),(0,F.jsx)("div",{className:"grid gap-4",children:T.map((e,s)=>{let a="";return e.title.includes("manual upload")?"Google Lens"===e.engine?a="Click to open, then drag & drop or upload your image":"Bing Visual Search"===e.engine||"Yandex Images"===e.engine?a="Click to open, then use the camera icon to upload":"TinEye"===e.engine?a="Click to open, then upload your image":"Google Images"===e.engine&&(a="Click to open, then use the camera icon to upload"):a="Click to perform direct reverse image search",(0,F.jsx)("div",{className:"border border-gray-200 rounded-lg p-4 hover:shadow-md transition-shadow",children:(0,F.jsxs)("div",{className:"flex items-center justify-between",children:[(0,F.jsxs)("div",{className:"flex items-center space-x-4 flex-1",children:[(0,F.jsx)(k.A,{className:"w-8 h-8 text-blue-600 flex-shrink-0"}),(0,F.jsxs)("div",{className:"flex-1",children:[(0,F.jsx)("h3",{className:"font-semibold text-gray-900",children:e.engine}),(0,F.jsx)("p",{className:"text-sm text-gray-600",children:e.domain}),a&&(0,F.jsx)("p",{className:"text-xs text-gray-500 mt-1",children:a})]})]}),(0,F.jsx)("div",{className:"flex items-center space-x-4",children:(0,F.jsxs)("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",className:"px-4 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors inline-flex items-center space-x-2",children:[(0,F.jsx)("span",{children:"Search"}),(0,F.jsx)(I.A,{className:"w-4 h-4"})]})})]})},s)})}),(0,F.jsx)("div",{className:"mt-6 p-4 bg-green-50 border border-green-200 rounded-lg",children:(0,F.jsxs)("div",{className:"flex items-start space-x-2",children:[(0,F.jsx)(C.A,{className:"w-5 h-5 text-green-600 mt-0.5"}),(0,F.jsxs)("div",{className:"text-sm text-green-800",children:[(0,F.jsx)("p",{className:"font-semibold mb-1",children:"How to use:"}),(0,F.jsx)("p",{className:"mb-2",children:"Your image will be temporarily uploaded to our server to enable direct reverse image searching. Here's what happens:"}),(0,F.jsxs)("ol",{className:"list-decimal list-inside space-y-1",children:[(0,F.jsxs)("li",{children:[(0,F.jsx)("strong",{children:"Automatic Search:"})," For uploaded images, we'll create a temporary URL that works with search engines"]}),(0,F.jsxs)("li",{children:[(0,F.jsx)("strong",{children:"Direct Links:"})," Click any search engine to perform the reverse image search directly"]}),(0,F.jsxs)("li",{children:[(0,F.jsx)("strong",{children:"Manual Option:"})," If automatic upload fails, you can still manually upload on each search engine"]}),(0,F.jsxs)("li",{children:[(0,F.jsx)("strong",{children:"Privacy:"})," Uploaded images are automatically deleted after 1 hour"]}),(0,F.jsxs)("li",{children:[(0,F.jsx)("strong",{children:"URL Images:"})," If you provide an image URL, it will be used directly without uploading"]})]})]})]})}),(0,F.jsx)("div",{className:"mt-4 p-4 bg-blue-50 border border-blue-200 rounded-lg",children:(0,F.jsxs)("div",{className:"flex items-start space-x-2",children:[(0,F.jsx)(A.A,{className:"w-5 h-5 text-blue-600 mt-0.5"}),(0,F.jsxs)("div",{className:"text-sm text-blue-800",children:[(0,F.jsx)("p",{className:"font-semibold mb-1",children:"What you'll find:"}),(0,F.jsxs)("ul",{className:"list-disc list-inside mt-2 space-y-1",children:[(0,F.jsx)("li",{children:"Similar or identical images across the web"}),(0,F.jsx)("li",{children:"Websites where the image appears"}),(0,F.jsx)("li",{children:"Different sizes and versions of the same image"}),(0,F.jsx)("li",{children:"Related or visually similar images"}),(0,F.jsx)("li",{children:"Information about objects, people, or places in the image"})]})]})]})})]}),(0,F.jsxs)("div",{className:"bg-white rounded-xl shadow-lg p-8 mb-8",children:[(0,F.jsxs)("div",{className:"flex items-center justify-between mb-6",children:[(0,F.jsx)("h2",{className:"text-2xl font-bold text-gray-900",children:"Recent Searches"}),(0,F.jsxs)("div",{className:"space-x-2",children:[(0,F.jsxs)("button",{onClick:()=>Z(!X),className:"px-4 py-2 text-gray-600 hover:text-gray-900 transition-colors inline-flex items-center space-x-2",children:[(0,F.jsx)(U.A,{className:"w-5 h-5"}),(0,F.jsxs)("span",{children:[X?"Hide":"Show"," History"]})]}),V.length>0&&(0,F.jsxs)("button",{onClick:()=>{window.confirm("Are you sure you want to clear all search history?")&&Q(h(d(),[]))},className:"px-4 py-2 text-red-600 hover:text-red-700 transition-colors inline-flex items-center space-x-2",children:[(0,F.jsx)(R.A,{className:"w-5 h-5"}),(0,F.jsx)("span",{children:"Clear History"})]})]})]}),X&&(0,F.jsx)("div",{children:0===V.length?(0,F.jsx)("p",{className:"text-gray-500 text-center py-8",children:"No search history yet"}):(0,F.jsx)("div",{className:"grid grid-cols-2 md:grid-cols-5 ga
1p-4",children:V.map(e=>(0,F.jsxs)("button",{onClick:()=>Ne(e),className:"group relative aspect-square rounded-lg overflow-hidden border border-gray-200 hover:shadow-lg transition-shadow",children:[e.thumbnail?(0,F.jsx)("img",{src:e.thumbnail,alt:"History",className:"w-full h-full object-cover"}):(0,F.jsx)("div",{className:"w-full h-full flex items-center justify-center bg-gray-100",children:(0,F.jsx)(L.A,{className:"w-10 h-10 text-gray-400"})}),(0,F.jsx)("div",{className:"absolute inset-0 bg-black bg-opacity-0 group-hover:bg-opacity-50 transition-opacity flex items-center justify-center",children:(0,F.jsx)(D.A,{className:"w-8 h-8 text-white opacity-0 group-hover:opacity-100 transition-opacity"})}),(0,F.jsxs)("div",{className:"absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black to-transparent p-2",children:[(0,F.jsx)("p",{className:"text-xs text-white truncate",children:e.fileName||"Image"}),(0,F.jsx)("p",{className:"text-xs text-white opacity-75",children:new Date(e.timestamp).toLocaleDateString()})]})]},e.id))})})]}),(0,F.jsxs)("div",{className:"grid md:grid-cols-3 gap-8 mb-8",children:[(0,F.jsxs)("div",{className:"bg-white rounded-xl shadow-lg p-6",children:[(0,F.jsx)("div",{className:"w-12 h-12 bg-blue-100 rounded-lg flex items-center justify-center mb-4",children:(0,F.jsx)(S.A,{className:"w-6 h-6 text-blue-600"})}),(0,F.jsx)("h3",{className:"text-lg font-semibold text-gray-900 mb-2",children:"Multiple Search Engines"}),(0,F.jsx)("p",{className:"text-gray-600",children:"Search Google Images, Google Lens, Bing, Yandex and TinEye from a single upload for comprehensive results."})]}),(0,F.jsxs)("div",{className:"bg-white rounded-xl shadow-lg p-6",children:[(0,F.jsx)("div",{className:"w-12 h-12 bg-green-100 rounded-lg flex items-center justify-center mb-4",children:(0,F.jsx)(u.A,{className:"w-6 h-6 text-green-600"})}),(0,F.jsx)("h3",{className:"text-lg font-semibold text-gray-900 mb-2",children:"Multiple Input Methods"}),(0,F.jsx)("p",{className:"text-gray-600",children:"Upload images, paste URLs, or use your camera. Supports drag & drop for easy uploading."})]}),(0,F.jsxs)("div",{className:"bg-white rounded-xl shadow-lg p-6",children:[(0,F.jsx)("div",{className:"w-12 h-12 bg-purple-100 rounded-lg flex items-center justify-center mb-4",children:(0,F.jsx)(U.A,{className:"w-6 h-6 text-purple-600"})}),(0,F.jsx)("h3",{className:"text-lg font-semibold text-gray-900 mb-2",children:"Search History"}),(0,F.jsx)("p",{className:"text-gray-600",children:"Keep track of your recent searches and quickly re-search images from your history."})]})]}),(0,F.jsxs)("div",{className:"bg-white rounded-xl shadow-lg p-8",children:[(0,F.jsx)("h2",{className:"text-2xl font-bold text-gray-900 mb-6",children:"Frequently Asked Questions"}),(0,F.jsxs)("div",{className:"space-y-6",children:[(0,F.jsxs)("div",{children:[(0,F.jsx)("h3",{className:"font-semibold text-gray-900 mb-2",children:"What is reverse image search?"}),(0,F.jsx)("p",{className:"text-gray-600",children:"Reverse image search is a technique that allows you to search the internet using an image instead of text. It helps you find similar images, identify objects, find the original source, or discover where else an image appears online."})]}),(0,F.jsxs)("div",{children:[(0,F.jsx)("h3",{className:"font-semibold text-gray-900 mb-2",children:"How does it work?"}),(0,F.jsx)("p",{className:"text-gray-600",children:"Upload an image or provide a URL, and our tool will help you search across multiple search engines. Each engine uses different algorithms to analyze the image and find visually similar content across the web."})]}),(0,F.jsxs)("div",{children:[(0,F.jsx)("h3",{className:"font-semibold text-gray-900 mb-2",children:"What can I use it for?"}),(0,F.jsx)("p",{className:"text-gray-600",children:"Common uses include finding the original source of an image, identifying fake profiles, finding higher resolution versions, discovering similar products, verifying image authenticity, and finding usage rights information."})]}),(0,F.jsxs)("div",{children:[(0,F.jsx)("h3",{className:"font-semibold text-gray-900 mb-2",children:"Is it free to use?"}),(0,F.jsx)("p",{className:"text-gray-600",children:"Yes! Our reverse image search tool is completely free to use. No registration or login required. You can search as many images as you want without any limitations."})]}),(0,F.jsxs)("div",{children:[(0,F.jsx)("h3",{className:"font-semibold text-gray-900 mb-2",children:"Is my data secure?"}),(0,F.jsx)("p",{className:"text-gray-600",children:"Search engines can only search an image they can download, so an uploaded image is stored on our server at a temporary, unlisted link. Only the search engines you click receive that link, and the file is deleted automatically after about an hour. We don't use your images for anything else. If you paste an image URL instead, nothing is uploaded."})]})]})]})]})]})}}}]); 2//# sourceMappingURL=3767.2449025d.chunk.js.map
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.