Files
whyrating-engine-legacy/web/app/new/page.tsx
Alejandro Gutiérrez eab0b4a7e9 Fix: Maximum update depth exceeded in NewScrapePage
Wrap handleJobsChange in useCallback to prevent infinite re-renders
caused by onJobsChange dependency changing on every render.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 13:14:23 +00:00

32 lines
918 B
TypeScript

'use client';
import { useRouter } from 'next/navigation';
import { useCallback } from 'react';
import ScraperTest from '@/components/ScraperTest';
import { useJobs } from '@/contexts/JobsContext';
import { JobStatus } from '@/components/ScraperTest';
export default function NewScrapePage() {
const router = useRouter();
const { addJob } = useJobs();
const handleJobsChange = useCallback((jobs: JobStatus[]) => {
// Add new jobs to context (addJob handles deduplication)
jobs.forEach(job => addJob(job));
}, [addJob]);
const handleSelectReviews = (reviews: unknown[], businessName: string, jobId: string) => {
// Navigate to analytics page for this job
router.push(`/analytics/${jobId}`);
};
return (
<div className="h-full overflow-y-auto p-6">
<ScraperTest
onJobsChange={handleJobsChange}
onSelectReviews={handleSelectReviews}
/>
</div>
);
}