Fix URL auto-completion in re-track and analyze forms

- Add useLocation and useEffect to TrackingPage to pre-fill URL and method from navigation state
- Add useLocation and useEffect to AnalysisPage to pre-fill URL from navigation state
- Users can now click 'Re-track URL' or 'Analyze URL' from check detail pages and forms are automatically populated
- Improves user workflow by eliminating manual URL retyping
- Maintains type safety with proper TypeScript interfaces for location state
This commit is contained in:
Andrei
2025-08-23 20:21:17 +00:00
parent 67fe4f9c00
commit df3ad8b194
6 changed files with 113 additions and 33 deletions

View File

@@ -3289,3 +3289,60 @@
{"error":"Invalid URL","level":"warn","message":"Failed to parse URL for redaction:","service":"redirect-intelligence-api","timestamp":"2025-08-23T20:04:36.713Z","url":"/v2/analyze/check/cmej4hi4q000bo5ddeox6i6vw"}
{"contentLength":"5041","duration":18,"headers":{"accept":"application/json, text/plain, */*","accept-encoding":"gzip, br","accept-language":"en-GB,en;q=0.9","cf-connecting-ip":"83.******.45","cookie":"_ga**********$h0","host":"api.urltrackertool.com","origin":"htt**********com","referer":"htt**********om/","user-agent":"Moz**********.36","x-forwarded-for":"83.**********221","x-forwarded-proto":"*****","x-real-ip":"172********221"},"ip":"::ffff:10.0.0.5","level":"info","message":"Request completed","method":"GET","service":"redirect-intelligence-api","statusCode":200,"timestamp":"2025-08-23T20:04:36.726Z","url":"/v2/track/cmej4hi4q000bo5ddeox6i6vw","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"}
{"contentLength":"5380","duration":20,"headers":{"accept":"application/json, text/plain, */*","accept-encoding":"gzip, br","accept-language":"en-GB,en;q=0.9","cf-connecting-ip":"83.******.45","cookie":"_ga**********$h0","host":"api.urltrackertool.com","origin":"htt**********com","referer":"htt**********om/","user-agent":"Moz**********.36","x-forwarded-for":"83.**********221","x-forwarded-proto":"*****","x-real-ip":"172********221"},"ip":"::ffff:10.0.0.5","level":"info","message":"Request completed","method":"GET","service":"redirect-intelligence-api","statusCode":200,"timestamp":"2025-08-23T20:04:36.733Z","url":"/v2/analyze/check/cmej4hi4q000bo5ddeox6i6vw","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"}
{"error":"Invalid URL","level":"warn","message":"Failed to parse URL for redaction:","service":"redirect-intelligence-api","timestamp":"2025-08-23T20:11:47.733Z","url":"/v2/checks/recent?limit=20"}
{"error":"Invalid URL","level":"warn","message":"Failed to parse URL for redaction:","service":"redirect-intelligence-api","timestamp":"2025-08-23T20:11:47.741Z","url":"/v2/projects"}
{"duration":120,"headers":{"accept":"application/json, text/plain, */*","accept-encoding":"gzip, br","accept-language":"en-GB,en;q=0.9","cf-connecting-ip":"83.******.45","cookie":"_ga**********$h0","host":"api.urltrackertool.com","origin":"htt**********com","referer":"htt**********om/","user-agent":"Moz**********.36","x-forwarded-for":"83.**********148","x-forwarded-proto":"*****","x-real-ip":"172********148"},"ip":"::ffff:10.0.0.5","level":"info","message":"Request completed","method":"GET","service":"redirect-intelligence-api","statusCode":304,"timestamp":"2025-08-23T20:11:47.852Z","url":"/v2/checks/recent?limit=20","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"}
{"duration":115,"headers":{"accept":"application/json, text/plain, */*","accept-encoding":"gzip, br","accept-language":"en-GB,en;q=0.9","cf-connecting-ip":"83.******.45","cookie":"_ga**********$h0","host":"api.urltrackertool.com","origin":"htt**********com","referer":"htt**********om/","user-agent":"Moz**********.36","x-forwarded-for":"83.**********148","x-forwarded-proto":"*****","x-real-ip":"172********148"},"ip":"::ffff:10.0.0.5","level":"info","message":"Request completed","method":"GET","service":"redirect-intelligence-api","statusCode":304,"timestamp":"2025-08-23T20:11:47.855Z","url":"/v2/projects","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"}
{"error":"Invalid URL","level":"warn","message":"Failed to parse URL for redaction:","service":"redirect-intelligence-api","timestamp":"2025-08-23T20:12:03.018Z","url":"/api/v1/auth/me"}
{"duration":15,"headers":{"accept":"application/json, text/plain, */*","accept-encoding":"gzip, br","accept-language":"en-GB,en;q=0.9","cf-connecting-ip":"83.******.45","cookie":"_ga**********$h0","host":"api.urltrackertool.com","origin":"htt**********com","referer":"htt**********om/","user-agent":"Moz**********.36","x-forwarded-for":"83.**********148","x-forwarded-proto":"*****","x-real-ip":"172********148"},"ip":"::ffff:10.0.0.5","level":"info","message":"Request completed","method":"GET","service":"redirect-intelligence-api","statusCode":304,"timestamp":"2025-08-23T20:12:03.032Z","url":"/api/v1/auth/me","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"}
{"error":"Invalid URL","level":"warn","message":"Failed to parse URL for redaction:","service":"redirect-intelligence-api","timestamp":"2025-08-23T20:12:07.614Z","url":"/v2/projects"}
{"error":"Invalid URL","level":"warn","message":"Failed to parse URL for redaction:","service":"redirect-intelligence-api","timestamp":"2025-08-23T20:12:07.621Z","url":"/v2/checks/recent?limit=20"}
{"duration":19,"headers":{"accept":"application/json, text/plain, */*","accept-encoding":"gzip, br","accept-language":"en-GB,en;q=0.9","cf-connecting-ip":"83.******.45","cookie":"_ga**********$h0","host":"api.urltrackertool.com","origin":"htt**********com","referer":"htt**********om/","user-agent":"Moz**********.36","x-forwarded-for":"83.**********175","x-forwarded-proto":"*****","x-real-ip":"172********175"},"ip":"::ffff:10.0.0.5","level":"info","message":"Request completed","method":"GET","service":"redirect-intelligence-api","statusCode":304,"timestamp":"2025-08-23T20:12:07.632Z","url":"/v2/projects","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"}
{"duration":26,"headers":{"accept":"application/json, text/plain, */*","accept-encoding":"gzip, br","accept-language":"en-GB,en;q=0.9","cf-connecting-ip":"83.******.45","cookie":"_ga**********$h0","host":"api.urltrackertool.com","origin":"htt**********com","referer":"htt**********om/","user-agent":"Moz**********.36","x-forwarded-for":"83.**********175","x-forwarded-proto":"*****","x-real-ip":"172********175"},"ip":"::ffff:10.0.0.5","level":"info","message":"Request completed","method":"GET","service":"redirect-intelligence-api","statusCode":304,"timestamp":"2025-08-23T20:12:07.647Z","url":"/v2/checks/recent?limit=20","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"}
{"error":"Invalid URL","level":"warn","message":"Failed to parse URL for redaction:","service":"redirect-intelligence-api","timestamp":"2025-08-23T20:12:10.662Z","url":"/api/v1/auth/me"}
{"duration":11,"headers":{"accept":"application/json, text/plain, */*","accept-encoding":"gzip, br","accept-language":"en-GB,en;q=0.9","cf-connecting-ip":"83.******.45","cookie":"_ga**********$h0","host":"api.urltrackertool.com","origin":"htt**********com","referer":"htt**********om/","user-agent":"Moz**********.36","x-forwarded-for":"83.**********175","x-forwarded-proto":"*****","x-real-ip":"172********175"},"ip":"::ffff:10.0.0.5","level":"info","message":"Request completed","method":"GET","service":"redirect-intelligence-api","statusCode":304,"timestamp":"2025-08-23T20:12:10.672Z","url":"/api/v1/auth/me","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"}
{"error":"Invalid URL","level":"warn","message":"Failed to parse URL for redaction:","service":"redirect-intelligence-api","timestamp":"2025-08-23T20:12:49.142Z","url":"/v2/projects"}
{"error":"Invalid URL","level":"warn","message":"Failed to parse URL for redaction:","service":"redirect-intelligence-api","timestamp":"2025-08-23T20:12:49.148Z","url":"/v2/checks/recent?limit=20"}
{"duration":19,"headers":{"accept":"application/json, text/plain, */*","accept-encoding":"gzip, br","accept-language":"en-GB,en;q=0.9","cf-connecting-ip":"83.******.45","cookie":"_ga**********$h0","host":"api.urltrackertool.com","origin":"htt**********com","referer":"htt**********om/","user-agent":"Moz**********.36","x-forwarded-for":"83.**********175","x-forwarded-proto":"*****","x-real-ip":"172********175"},"ip":"::ffff:10.0.0.5","level":"info","message":"Request completed","method":"GET","service":"redirect-intelligence-api","statusCode":304,"timestamp":"2025-08-23T20:12:49.161Z","url":"/v2/projects","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"}
{"duration":33,"headers":{"accept":"application/json, text/plain, */*","accept-encoding":"gzip, br","accept-language":"en-GB,en;q=0.9","cf-connecting-ip":"83.******.45","cookie":"_ga**********$h0","host":"api.urltrackertool.com","origin":"htt**********com","referer":"htt**********om/","user-agent":"Moz**********.36","x-forwarded-for":"83.**********175","x-forwarded-proto":"*****","x-real-ip":"172********175"},"ip":"::ffff:10.0.0.5","level":"info","message":"Request completed","method":"GET","service":"redirect-intelligence-api","statusCode":304,"timestamp":"2025-08-23T20:12:49.181Z","url":"/v2/checks/recent?limit=20","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"}
{"error":"Invalid URL","level":"warn","message":"Failed to parse URL for redaction:","service":"redirect-intelligence-api","timestamp":"2025-08-23T20:12:53.780Z","url":"/v2/track/cmejnn7iw000so5dd25vvb1hl"}
{"error":"Invalid URL","level":"warn","message":"Failed to parse URL for redaction:","service":"redirect-intelligence-api","timestamp":"2025-08-23T20:12:53.786Z","url":"/v2/analyze/check/cmejnn7iw000so5dd25vvb1hl"}
{"contentLength":"9005","duration":28,"headers":{"accept":"application/json, text/plain, */*","accept-encoding":"gzip, br","accept-language":"en-GB,en;q=0.9","cf-connecting-ip":"83.******.45","cookie":"_ga**********$h0","host":"api.urltrackertool.com","origin":"htt**********com","referer":"htt**********om/","user-agent":"Moz**********.36","x-forwarded-for":"83.**********148","x-forwarded-proto":"*****","x-real-ip":"172********148"},"ip":"::ffff:10.0.0.5","level":"info","message":"Request completed","method":"GET","service":"redirect-intelligence-api","statusCode":200,"timestamp":"2025-08-23T20:12:53.808Z","url":"/v2/track/cmejnn7iw000so5dd25vvb1hl","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"}
{"contentLength":"9306","duration":31,"headers":{"accept":"application/json, text/plain, */*","accept-encoding":"gzip, br","accept-language":"en-GB,en;q=0.9","cf-connecting-ip":"83.******.45","cookie":"_ga**********$h0","host":"api.urltrackertool.com","origin":"htt**********com","referer":"htt**********om/","user-agent":"Moz**********.36","x-forwarded-for":"83.**********148","x-forwarded-proto":"*****","x-real-ip":"172********148"},"ip":"::ffff:10.0.0.5","level":"info","message":"Request completed","method":"GET","service":"redirect-intelligence-api","statusCode":200,"timestamp":"2025-08-23T20:12:53.816Z","url":"/v2/analyze/check/cmejnn7iw000so5dd25vvb1hl","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"}
{"level":"info","message":"SIGTERM received, shutting down gracefully","service":"redirect-intelligence-api","timestamp":"2025-08-23T20:16:24.504Z"}
{"level":"info","message":"🚀 Redirect Intelligence v2 API Server running on http://localhost:3334","service":"redirect-intelligence-api","timestamp":"2025-08-23T20:16:27.647Z"}
{"level":"info","message":"📖 API Documentation: http://localhost:3334/api/docs","service":"redirect-intelligence-api","timestamp":"2025-08-23T20:16:27.652Z"}
{"level":"info","message":"🏥 Health Check: http://localhost:3334/health","service":"redirect-intelligence-api","timestamp":"2025-08-23T20:16:27.653Z"}
{"error":"Invalid URL","level":"warn","message":"Failed to parse URL for redaction:","service":"redirect-intelligence-api","timestamp":"2025-08-23T20:16:34.634Z","url":"/health"}
{"contentLength":"100","duration":12,"headers":{"accept":"*/*","host":"localhost:3334","user-agent":"cur*****1.0"},"ip":"::ffff:127.0.0.1","level":"info","message":"Request completed","method":"GET","service":"redirect-intelligence-api","statusCode":200,"timestamp":"2025-08-23T20:16:34.645Z","url":"/health","userAgent":"curl/7.81.0"}
{"error":"Invalid URL","level":"warn","message":"Failed to parse URL for redaction:","service":"redirect-intelligence-api","timestamp":"2025-08-23T20:17:04.115Z","url":"/v2/track/cmejnn7iw000so5dd25vvb1hl"}
{"error":"Invalid URL","level":"warn","message":"Failed to parse URL for redaction:","service":"redirect-intelligence-api","timestamp":"2025-08-23T20:17:04.157Z","url":"/v2/analyze/check/cmejnn7iw000so5dd25vvb1hl"}
{"duration":170,"headers":{"accept":"application/json, text/plain, */*","accept-encoding":"gzip, br","accept-language":"en-GB,en;q=0.9","cf-connecting-ip":"83.******.45","cookie":"_ga**********$h0","host":"api.urltrackertool.com","origin":"htt**********com","referer":"htt**********om/","user-agent":"Moz**********.36","x-forwarded-for":"83.**********179","x-forwarded-proto":"*****","x-real-ip":"172********179"},"ip":"::ffff:10.0.0.5","level":"info","message":"Request completed","method":"GET","service":"redirect-intelligence-api","statusCode":304,"timestamp":"2025-08-23T20:17:04.284Z","url":"/v2/track/cmejnn7iw000so5dd25vvb1hl","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"}
{"contentLength":"9306","duration":140,"headers":{"accept":"application/json, text/plain, */*","accept-encoding":"gzip, br","accept-language":"en-GB,en;q=0.9","cf-connecting-ip":"83.******.45","cookie":"_ga**********$h0","host":"api.urltrackertool.com","origin":"htt**********com","referer":"htt**********om/","user-agent":"Moz**********.36","x-forwarded-for":"83.**********178","x-forwarded-proto":"*****","x-real-ip":"172********178"},"ip":"::ffff:10.0.0.5","level":"info","message":"Request completed","method":"GET","service":"redirect-intelligence-api","statusCode":200,"timestamp":"2025-08-23T20:17:04.297Z","url":"/v2/analyze/check/cmejnn7iw000so5dd25vvb1hl","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"}
{"error":"Invalid URL","level":"warn","message":"Failed to parse URL for redaction:","service":"redirect-intelligence-api","timestamp":"2025-08-23T20:17:04.355Z","url":"/api/v1/auth/me"}
{"duration":13,"headers":{"accept":"application/json, text/plain, */*","accept-encoding":"gzip, br","accept-language":"en-GB,en;q=0.9","cf-connecting-ip":"83.******.45","cookie":"_ga**********$h0","host":"api.urltrackertool.com","origin":"htt**********com","referer":"htt**********om/","user-agent":"Moz**********.36","x-forwarded-for":"83.**********179","x-forwarded-proto":"*****","x-real-ip":"172********179"},"ip":"::ffff:10.0.0.5","level":"info","message":"Request completed","method":"GET","service":"redirect-intelligence-api","statusCode":304,"timestamp":"2025-08-23T20:17:04.367Z","url":"/api/v1/auth/me","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"}
{"error":"Invalid URL","level":"warn","message":"Failed to parse URL for redaction:","service":"redirect-intelligence-api","timestamp":"2025-08-23T20:17:10.985Z","url":"/v2/track"}
{"contentLength":"0","duration":2,"headers":{"accept":"*/*","accept-encoding":"gzip, br","accept-language":"en-GB,en;q=0.9","cf-connecting-ip":"83.******.45","host":"api.urltrackertool.com","origin":"htt**********com","referer":"htt**********om/","user-agent":"Moz**********.36","x-forwarded-for":"83.**********221","x-forwarded-proto":"*****","x-real-ip":"172********221"},"ip":"::ffff:10.0.0.5","level":"info","message":"Request completed","method":"OPTIONS","service":"redirect-intelligence-api","statusCode":200,"timestamp":"2025-08-23T20:17:10.987Z","url":"/v2/track","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"}
{"error":"Invalid URL","level":"warn","message":"Failed to parse URL for redaction:","service":"redirect-intelligence-api","timestamp":"2025-08-23T20:17:11.190Z","url":"/v2/track"}
{"level":"info","maxHops":10,"message":"Starting enhanced redirect tracking: https://footprints-ai.profi.ro/campaigns-smart/dXRtX3NvdXJjZT1mb290cHJpbnRzLWFpLnByb2ZpJnV0bV9tZWRpdW09bW9iaWxlQXBwJnV0bV9jYW1wYWlnbj1JTkcrLStDcmVkaXQrY2FyZCtjdStjaGVmK2RlK3NhdnVyYXQrJTVCMTQuMDgrLSszMS4wOCU1RCZ1dG1faWQ9YjE1c29zODdnOA==","method":"GET","projectId":"cmeizda0t000kxqf4v8hnhqxt","service":"redirect-intelligence-api","timestamp":"2025-08-23T20:17:11.226Z","userId":"cmeizda0i000fxqf4mysy7x6m"}
{"finalUrl":"https://ing.ro/lp/credit-card?sup=OTHE&ini=other&cha=17&cam=23465&utm_source=other&utm_medium=dirbuy_video&utm_campaign=ire_PAT-52056_ro_2025_rtl_credit-card_display-video_LIB-SHOP-25_na_na&utm_content=placement-name-j6p_PAT-52056-PAM-58206_ro_2025_rtl_credit-card_intrst_aw_see_direct-display_footprintsai_direct_dis_1x1_na_na_cpm_LIB-SHOP-25-MPL-07-Profi–Mobile-App–Sponsored-Post-creative-name-ro_credit-card_1x1_LIB-SHOP-25-MPL-07-Profi–Mobile-App–Sponsored-Post_na&dclid=CMntw4_goY8DFb1S9ggduVwGDw&gad_source=7","level":"info","message":"Starting enhanced analysis for check cmeopahx80001gq9jgs2wnrk4","securityEnabled":true,"seoEnabled":true,"service":"redirect-intelligence-api","sslEnabled":true,"timestamp":"2025-08-23T20:17:12.743Z"}
{"level":"info","message":"Starting SSL analysis for: ing.ro:443","service":"redirect-intelligence-api","timestamp":"2025-08-23T20:17:12.744Z"}
{"level":"info","message":"Starting SEO analysis for: https://ing.ro/lp/credit-card?sup=OTHE&ini=other&cha=17&cam=23465&utm_source=other&utm_medium=dirbuy_video&utm_campaign=ire_PAT-52056_ro_2025_rtl_credit-card_display-video_LIB-SHOP-25_na_na&utm_content=placement-name-j6p_PAT-52056-PAM-58206_ro_2025_rtl_credit-card_intrst_aw_see_direct-display_footprintsai_direct_dis_1x1_na_na_cpm_LIB-SHOP-25-MPL-07-Profi–Mobile-App–Sponsored-Post-creative-name-ro_credit-card_1x1_LIB-SHOP-25-MPL-07-Profi–Mobile-App–Sponsored-Post_na&dclid=CMntw4_goY8DFb1S9ggduVwGDw&gad_source=7","service":"redirect-intelligence-api","timestamp":"2025-08-23T20:17:12.747Z"}
{"level":"info","message":"Starting security analysis for: https://ing.ro/lp/credit-card?sup=OTHE&ini=other&cha=17&cam=23465&utm_source=other&utm_medium=dirbuy_video&utm_campaign=ire_PAT-52056_ro_2025_rtl_credit-card_display-video_LIB-SHOP-25_na_na&utm_content=placement-name-j6p_PAT-52056-PAM-58206_ro_2025_rtl_credit-card_intrst_aw_see_direct-display_footprintsai_direct_dis_1x1_na_na_cpm_LIB-SHOP-25-MPL-07-Profi–Mobile-App–Sponsored-Post-creative-name-ro_credit-card_1x1_LIB-SHOP-25-MPL-07-Profi–Mobile-App–Sponsored-Post_na&dclid=CMntw4_goY8DFb1S9ggduVwGDw&gad_source=7","service":"redirect-intelligence-api","timestamp":"2025-08-23T20:17:12.752Z"}
{"daysToExpiry":323,"level":"info","message":"SSL analysis completed for: ing.ro:443","securityScore":100,"service":"redirect-intelligence-api","timestamp":"2025-08-23T20:17:12.873Z","valid":true}
{"hasTitle":true,"level":"info","message":"SEO analysis completed for: https://ing.ro/lp/credit-card?sup=OTHE&ini=other&cha=17&cam=23465&utm_source=other&utm_medium=dirbuy_video&utm_campaign=ire_PAT-52056_ro_2025_rtl_credit-card_display-video_LIB-SHOP-25_na_na&utm_content=placement-name-j6p_PAT-52056-PAM-58206_ro_2025_rtl_credit-card_intrst_aw_see_direct-display_footprintsai_direct_dis_1x1_na_na_cpm_LIB-SHOP-25-MPL-07-Profi–Mobile-App–Sponsored-Post-creative-name-ro_credit-card_1x1_LIB-SHOP-25-MPL-07-Profi–Mobile-App–Sponsored-Post_na&dclid=CMntw4_goY8DFb1S9ggduVwGDw&gad_source=7","noindex":true,"robotsStatus":"found","score":69,"service":"redirect-intelligence-api","timestamp":"2025-08-23T20:17:13.635Z"}
{"headersScore":70,"level":"info","message":"Security analysis completed for: https://ing.ro/lp/credit-card?sup=OTHE&ini=other&cha=17&cam=23465&utm_source=other&utm_medium=dirbuy_video&utm_campaign=ire_PAT-52056_ro_2025_rtl_credit-card_display-video_LIB-SHOP-25_na_na&utm_content=placement-name-j6p_PAT-52056-PAM-58206_ro_2025_rtl_credit-card_intrst_aw_see_direct-display_footprintsai_direct_dis_1x1_na_na_cpm_LIB-SHOP-25-MPL-07-Profi–Mobile-App–Sponsored-Post-creative-name-ro_credit-card_1x1_LIB-SHOP-25-MPL-07-Profi–Mobile-App–Sponsored-Post_na&dclid=CMntw4_goY8DFb1S9ggduVwGDw&gad_source=7","mixedContent":"NONE","safeBrowsing":"safe","score":90,"service":"redirect-intelligence-api","timestamp":"2025-08-23T20:17:13.691Z"}
{"level":"info","message":"Enhanced analysis completed for check cmeopahx80001gq9jgs2wnrk4","service":"redirect-intelligence-api","timestamp":"2025-08-23T20:17:13.875Z"}
{"checkId":"cmeopahx80001gq9jgs2wnrk4","level":"info","loopDetected":false,"message":"Enhanced redirect tracking completed: https://footprints-ai.profi.ro/campaigns-smart/dXRtX3NvdXJjZT1mb290cHJpbnRzLWFpLnByb2ZpJnV0bV9tZWRpdW09bW9iaWxlQXBwJnV0bV9jYW1wYWlnbj1JTkcrLStDcmVkaXQrY2FyZCtjdStjaGVmK2RlK3NhdnVyYXQrJTVCMTQuMDgrLSszMS4wOCU1RCZ1dG1faWQ9YjE1c29zODdnOA==","redirectCount":2,"service":"redirect-intelligence-api","status":"OK","timestamp":"2025-08-23T20:17:13.903Z","totalTimeMs":1251}
{"checkId":"cmeopahx80001gq9jgs2wnrk4","isAnonymous":false,"level":"info","message":"Enhanced tracking completed: https://footprints-ai.profi.ro/campaigns-smart/dXRtX3NvdXJjZT1mb290cHJpbnRzLWFpLnByb2ZpJnV0bV9tZWRpdW09bW9iaWxlQXBwJnV0bV9jYW1wYWlnbj1JTkcrLStDcmVkaXQrY2FyZCtjdStjaGVmK2RlK3NhdnVyYXQrJTVCMTQuMDgrLSszMS4wOCU1RCZ1dG1faWQ9YjE1c29zODdnOA==","projectId":"cmeizda0t000kxqf4v8hnhqxt","redirectCount":2,"service":"redirect-intelligence-api","status":"OK","timestamp":"2025-08-23T20:17:13.903Z","userId":"cmeizda0i000fxqf4mysy7x6m"}
{"contentLength":"11159","duration":2716,"headers":{"accept":"application/json, text/plain, */*","accept-encoding":"gzip, br","accept-language":"en-GB,en;q=0.9","cf-connecting-ip":"83.******.45","content-length":"384","content-type":"application/json","cookie":"_ga**********$h0","host":"api.urltrackertool.com","origin":"htt**********com","referer":"htt**********om/","user-agent":"Moz**********.36","x-forwarded-for":"83.**********148","x-forwarded-proto":"*****","x-real-ip":"172********148"},"ip":"::ffff:10.0.0.5","level":"info","message":"Request completed","method":"POST","service":"redirect-intelligence-api","statusCode":200,"timestamp":"2025-08-23T20:17:13.905Z","url":"/v2/track","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"}
{"error":"Invalid URL","level":"warn","message":"Failed to parse URL for redaction:","service":"redirect-intelligence-api","timestamp":"2025-08-23T20:17:14.004Z","url":"/v2/track/cmeopahx80001gq9jgs2wnrk4"}
{"error":"Invalid URL","level":"warn","message":"Failed to parse URL for redaction:","service":"redirect-intelligence-api","timestamp":"2025-08-23T20:17:14.008Z","url":"/v2/analyze/check/cmeopahx80001gq9jgs2wnrk4"}
{"contentLength":"9006","duration":25,"headers":{"accept":"application/json, text/plain, */*","accept-encoding":"gzip, br","accept-language":"en-GB,en;q=0.9","cf-connecting-ip":"83.******.45","cookie":"_ga**********$h0","host":"api.urltrackertool.com","origin":"htt**********com","referer":"htt**********om/","user-agent":"Moz**********.36","x-forwarded-for":"83.**********148","x-forwarded-proto":"*****","x-real-ip":"172********148"},"ip":"::ffff:10.0.0.5","level":"info","message":"Request completed","method":"GET","service":"redirect-intelligence-api","statusCode":200,"timestamp":"2025-08-23T20:17:14.028Z","url":"/v2/track/cmeopahx80001gq9jgs2wnrk4","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"}
{"contentLength":"10532","duration":32,"headers":{"accept":"application/json, text/plain, */*","accept-encoding":"gzip, br","accept-language":"en-GB,en;q=0.9","cf-connecting-ip":"83.******.45","cookie":"_ga**********$h0","host":"api.urltrackertool.com","origin":"htt**********com","referer":"htt**********om/","user-agent":"Moz**********.36","x-forwarded-for":"83.**********148","x-forwarded-proto":"*****","x-real-ip":"172********148"},"ip":"::ffff:10.0.0.5","level":"info","message":"Request completed","method":"GET","service":"redirect-intelligence-api","statusCode":200,"timestamp":"2025-08-23T20:17:14.040Z","url":"/v2/analyze/check/cmeopahx80001gq9jgs2wnrk4","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"}
{"error":"Invalid URL","level":"warn","message":"Failed to parse URL for redaction:","service":"redirect-intelligence-api","timestamp":"2025-08-23T20:19:02.875Z","url":"/v2/projects"}
{"error":"Invalid URL","level":"warn","message":"Failed to parse URL for redaction:","service":"redirect-intelligence-api","timestamp":"2025-08-23T20:19:02.961Z","url":"/v2/checks/recent?limit=20"}
{"contentLength":"13531","duration":78,"headers":{"accept":"application/json, text/plain, */*","accept-encoding":"gzip, br","accept-language":"en-GB,en;q=0.9","cf-connecting-ip":"83.******.45","cookie":"_ga**********$h0","host":"api.urltrackertool.com","origin":"htt**********com","referer":"htt**********om/","user-agent":"Moz**********.36","x-forwarded-for":"83.**********174","x-forwarded-proto":"*****","x-real-ip":"172********174"},"ip":"::ffff:10.0.0.5","level":"info","message":"Request completed","method":"GET","service":"redirect-intelligence-api","statusCode":200,"timestamp":"2025-08-23T20:19:03.039Z","url":"/v2/checks/recent?limit=20","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"}
{"contentLength":"298","duration":209,"headers":{"accept":"application/json, text/plain, */*","accept-encoding":"gzip, br","accept-language":"en-GB,en;q=0.9","cf-connecting-ip":"83.******.45","cookie":"_ga**********$h0","host":"api.urltrackertool.com","origin":"htt**********com","referer":"htt**********om/","user-agent":"Moz**********.36","x-forwarded-for":"83.**********175","x-forwarded-proto":"*****","x-real-ip":"172********175"},"ip":"::ffff:10.0.0.5","level":"info","message":"Request completed","method":"GET","service":"redirect-intelligence-api","statusCode":200,"timestamp":"2025-08-23T20:19:03.084Z","url":"/v2/projects","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"}
{"error":"Invalid URL","level":"warn","message":"Failed to parse URL for redaction:","service":"redirect-intelligence-api","timestamp":"2025-08-23T20:19:58.490Z","url":"/api/v1/auth/me"}
{"duration":19,"headers":{"accept":"application/json, text/plain, */*","accept-encoding":"gzip, br","accept-language":"en-GB,en;q=0.9","cf-connecting-ip":"83.******.45","cookie":"_ga**********$h0","host":"api.urltrackertool.com","origin":"htt**********com","referer":"htt**********om/","user-agent":"Moz**********.36","x-forwarded-for":"83.**********221","x-forwarded-proto":"*****","x-real-ip":"172********221"},"ip":"::ffff:10.0.0.5","level":"info","message":"Request completed","method":"GET","service":"redirect-intelligence-api","statusCode":304,"timestamp":"2025-08-23T20:19:58.509Z","url":"/api/v1/auth/me","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -15,7 +15,7 @@
gtag('config', 'G-ZDZ26XYN2P');
</script>
<script type="module" crossorigin src="/assets/index-Z8hwuOIA.js"></script>
<script type="module" crossorigin src="/assets/index-DL4PyATX.js"></script>
</head>
<body>
<div id="root"></div>

View File

@@ -2,7 +2,7 @@
* Analysis Page - Comprehensive analysis and reporting interface
*/
import { useState } from 'react';
import { useState, useEffect } from 'react';
import {
Box,
Heading,
@@ -42,6 +42,7 @@ import { useForm } from 'react-hook-form';
import { zodResolver } from '@hookform/resolvers/zod';
import { z } from 'zod';
import { useMutation } from '@tanstack/react-query';
import { useLocation } from 'react-router-dom';
import {
FiShield,
FiSearch,
@@ -72,6 +73,7 @@ interface AnalysisResults {
export function AnalysisPage() {
const [analysisResults, setAnalysisResults] = useState<AnalysisResults | null>(null);
const toast = useToast();
const location = useLocation();
const cardBg = useColorModeValue('white', 'gray.800');
const borderColor = useColorModeValue('gray.200', 'gray.700');
@@ -79,6 +81,7 @@ export function AnalysisPage() {
const {
register,
handleSubmit,
setValue,
formState: { errors },
} = useForm<AnalysisFormData>({
resolver: zodResolver(analysisSchema),
@@ -89,6 +92,14 @@ export function AnalysisPage() {
// const analysisType = watch('analysisType'); // For future use
// Pre-fill form if URL is passed via navigation state
useEffect(() => {
const state = location.state as { url?: string } | null;
if (state?.url) {
setValue('url', state.url);
}
}, [location.state, setValue]);
const analysisMutation = useMutation({
mutationFn: async (data: AnalysisFormData) => {
switch (data.analysisType) {

View File

@@ -4,7 +4,7 @@
* Advanced form for tracking URLs with analysis options
*/
import { useState } from 'react';
import { useState, useEffect } from 'react';
import {
Box,
Heading,
@@ -43,7 +43,7 @@ import { useForm } from 'react-hook-form';
import { zodResolver } from '@hookform/resolvers/zod';
import { z } from 'zod';
import { useMutation } from '@tanstack/react-query';
import { useNavigate } from 'react-router-dom';
import { useNavigate, useLocation } from 'react-router-dom';
import { trackingApi, TrackRequestV2 } from '../services/api';
import { TrackingResults } from '../components/Tracking/TrackingResults';
@@ -68,6 +68,7 @@ export function TrackingPage() {
const [trackingResult, setTrackingResult] = useState<any>(null);
const toast = useToast();
const navigate = useNavigate();
const location = useLocation();
const { isAuthenticated } = useAuth();
const {
@@ -91,6 +92,17 @@ export function TrackingPage() {
const maxHops = watch('maxHops');
const timeout = watch('timeout');
// Pre-fill form if URL is passed via navigation state
useEffect(() => {
const state = location.state as { url?: string; method?: string } | null;
if (state?.url) {
setValue('url', state.url);
if (state.method) {
setValue('method', state.method as 'GET' | 'POST' | 'HEAD');
}
}
}, [location.state, setValue]);
const trackingMutation = useMutation({
mutationFn: async (data: TrackRequestV2) => {
return await trackingApi.trackUrlV2(data);