Initial commit - WhyRating Engine (Google Reviews Scraper)

This commit is contained in:
Alejandro Gutiérrez
2026-02-02 18:19:00 +00:00
parent 0543a08242
commit 2206ddeff2
136 changed files with 51138 additions and 855 deletions

View File

@@ -9,6 +9,7 @@ interface DynamicDashboardProps {
pipelineId: string;
config: DashboardConfig;
businessId?: string;
jobId?: string;
}
// Time range options
@@ -31,6 +32,7 @@ export function DynamicDashboard({
pipelineId,
config,
businessId: initialBusinessId,
jobId,
}: DynamicDashboardProps) {
const [timeRange, setTimeRange] = useState(config.default_time_range || '30d');
const [businessId, setBusinessId] = useState(initialBusinessId);
@@ -46,11 +48,11 @@ export function DynamicDashboard({
{/* Dashboard Header */}
<div className="flex items-center justify-between">
<div>
<h1 className="text-2xl font-bold text-gray-900 dark:text-gray-100">
<h1 className="text-2xl font-bold text-gray-900">
{config.title}
</h1>
{config.description && (
<p className="text-gray-500 mt-1">{config.description}</p>
<p className="text-gray-600 mt-1">{config.description}</p>
)}
</div>
@@ -58,7 +60,7 @@ export function DynamicDashboard({
<div className="flex items-center space-x-3">
{/* Business Filter (placeholder) */}
{businessId && (
<div className="flex items-center text-sm text-gray-600 dark:text-gray-400 bg-gray-100 dark:bg-gray-800 px-3 py-2 rounded-md">
<div className="flex items-center text-sm text-gray-700 bg-gray-100 px-3 py-2 rounded-md">
<Building2 className="w-4 h-4 mr-2" />
<span className="truncate max-w-[150px]">{businessId}</span>
</div>
@@ -69,7 +71,7 @@ export function DynamicDashboard({
<select
value={timeRange}
onChange={(e) => setTimeRange(e.target.value)}
className="appearance-none bg-white dark:bg-gray-800 border border-gray-300 dark:border-gray-600 rounded-md pl-9 pr-8 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-blue-500"
className="appearance-none bg-white border border-gray-300 rounded-md pl-9 pr-8 py-2 text-sm text-gray-900 focus:outline-none focus:ring-2 focus:ring-blue-500"
>
{TIME_RANGES.map((range) => (
<option key={range.value} value={range.value}>
@@ -83,7 +85,7 @@ export function DynamicDashboard({
{/* Refresh Button */}
<button
onClick={handleRefresh}
className="p-2 text-gray-500 hover:text-gray-700 dark:hover:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-800 rounded-md"
className="p-2 text-gray-500 hover:text-gray-700 hover:bg-gray-200 rounded-md"
title="Refresh all widgets"
>
<RefreshCw className="w-5 h-5" />
@@ -98,6 +100,7 @@ export function DynamicDashboard({
section={section}
pipelineId={pipelineId}
businessId={businessId}
jobId={jobId}
timeRange={timeRange}
/>
))}