feat: Simplify home page and remove tracking form
- Remove complex tracking form from home page
- Replace with clean 'Analyze URL Redirects' call-to-action button
- Remove announcement badge '🚀 URL Tracker Tool V2 - Now Available'
- Clean up unused imports and form-related code
- Direct users to dedicated /track page for full functionality
- Improve user experience with cleaner, more focused home page
Changes:
- Simplified HomePage component with single CTA button
- Removed form validation, mutation handling, and result display
- Maintained all tracking functionality on /track page
- Professional appearance without promotional clutter
This commit is contained in:
@@ -62,6 +62,11 @@ export interface CheckResult {
|
||||
redirectCount: number;
|
||||
loopDetected?: boolean;
|
||||
error?: string;
|
||||
analysis?: {
|
||||
ssl?: any;
|
||||
seo?: any;
|
||||
security?: any;
|
||||
};
|
||||
}
|
||||
export declare class RedirectTrackerService {
|
||||
private sslAnalyzer;
|
||||
@@ -74,6 +79,7 @@ export declare class RedirectTrackerService {
|
||||
getCheck(checkId: string, userId?: string): Promise<CheckResult | null>;
|
||||
listChecks(projectId: string, limit?: number, offset?: number): Promise<CheckResult[]>;
|
||||
private performEnhancedAnalysis;
|
||||
private getAnalysisResults;
|
||||
}
|
||||
export {};
|
||||
//# sourceMappingURL=redirect-tracker.service.d.ts.map
|
||||
@@ -1 +1 @@
|
||||
{"version":3,"file":"redirect-tracker.service.d.ts","sourceRoot":"","sources":["../../src/services/redirect-tracker.service.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAO3D,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYtB,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAG9D,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,YAAY,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,IAAI,CAAC;IAChB,UAAU,EAAE,IAAI,CAAC;IACjB,IAAI,EAAE,SAAS,EAAE,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAOD,qBAAa,sBAAsB;IACjC,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,gBAAgB,CAAiC;IAKnD,QAAQ,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;YAuI9D,oBAAoB;YA2JpB,kBAAkB;IAoBhC,OAAO,CAAC,kBAAkB;IAkBpB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAoDvE,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,EAAE,MAAM,GAAE,MAAU,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;YAyCrF,uBAAuB;CAiHtC"}
|
||||
{"version":3,"file":"redirect-tracker.service.d.ts","sourceRoot":"","sources":["../../src/services/redirect-tracker.service.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAO3D,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYtB,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAG9D,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,YAAY,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,IAAI,CAAC;IAChB,UAAU,EAAE,IAAI,CAAC;IACjB,IAAI,EAAE,SAAS,EAAE,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE;QACT,GAAG,CAAC,EAAE,GAAG,CAAC;QACV,GAAG,CAAC,EAAE,GAAG,CAAC;QACV,QAAQ,CAAC,EAAE,GAAG,CAAC;KAChB,CAAC;CACH;AAOD,qBAAa,sBAAsB;IACjC,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,gBAAgB,CAAiC;IAKnD,QAAQ,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;YA2I9D,oBAAoB;YA2JpB,kBAAkB;IAoBhC,OAAO,CAAC,kBAAkB;IAkBpB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAoDvE,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,EAAE,MAAM,GAAE,MAAU,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;YAyCrF,uBAAuB;YAqHvB,kBAAkB;CAkCjC"}
|
||||
@@ -23,9 +23,9 @@ const trackRequestSchema = zod_1.z.object({
|
||||
followJS: zod_1.z.boolean().default(false),
|
||||
maxHops: zod_1.z.number().min(1).max(20).default(10),
|
||||
timeout: zod_1.z.number().min(1000).max(30000).default(15000),
|
||||
enableSSLAnalysis: zod_1.z.boolean().default(false),
|
||||
enableSEOAnalysis: zod_1.z.boolean().default(false),
|
||||
enableSecurityAnalysis: zod_1.z.boolean().default(false),
|
||||
enableSSLAnalysis: zod_1.z.boolean().default(true),
|
||||
enableSEOAnalysis: zod_1.z.boolean().default(true),
|
||||
enableSecurityAnalysis: zod_1.z.boolean().default(true),
|
||||
});
|
||||
class RedirectTrackerService {
|
||||
sslAnalyzer = new ssl_analyzer_service_1.SSLAnalyzerService();
|
||||
@@ -82,6 +82,7 @@ class RedirectTrackerService {
|
||||
});
|
||||
await this.saveHopsToDatabase(check.id, hops);
|
||||
await this.performEnhancedAnalysis(check.id, finalUrl || inputUrl, hops.map(h => h.url), validatedRequest);
|
||||
const analysisData = await this.getAnalysisResults(check.id);
|
||||
const result = {
|
||||
id: check.id,
|
||||
inputUrl,
|
||||
@@ -104,6 +105,7 @@ class RedirectTrackerService {
|
||||
})),
|
||||
redirectCount,
|
||||
loopDetected,
|
||||
analysis: analysisData,
|
||||
};
|
||||
logger_1.logger.info(`Enhanced redirect tracking completed: ${inputUrl}`, {
|
||||
checkId: check.id,
|
||||
@@ -448,6 +450,36 @@ class RedirectTrackerService {
|
||||
logger_1.logger.error(`Enhanced analysis failed for check ${checkId}:`, error);
|
||||
}
|
||||
}
|
||||
async getAnalysisResults(checkId) {
|
||||
try {
|
||||
const [sslInspections, seoFlags, securityFlags] = await Promise.all([
|
||||
prisma_1.prisma.sslInspection.findMany({
|
||||
where: { checkId }
|
||||
}),
|
||||
prisma_1.prisma.seoFlags.findMany({
|
||||
where: { checkId }
|
||||
}),
|
||||
prisma_1.prisma.securityFlags.findMany({
|
||||
where: { checkId }
|
||||
})
|
||||
]);
|
||||
const analysis = {};
|
||||
if (sslInspections.length > 0) {
|
||||
analysis.ssl = sslInspections[0];
|
||||
}
|
||||
if (seoFlags.length > 0) {
|
||||
analysis.seo = seoFlags[0];
|
||||
}
|
||||
if (securityFlags.length > 0) {
|
||||
analysis.security = securityFlags[0];
|
||||
}
|
||||
return Object.keys(analysis).length > 0 ? analysis : null;
|
||||
}
|
||||
catch (error) {
|
||||
logger_1.logger.error(`Failed to fetch analysis results for check ${checkId}:`, error);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
exports.RedirectTrackerService = RedirectTrackerService;
|
||||
//# sourceMappingURL=redirect-tracker.service.js.map
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user