From aa3c62b7549da6c57e1072cf2f799432d6f502a5 Mon Sep 17 00:00:00 2001 From: Anish Sarkar <104695310+AnishSarkar22@users.noreply.github.com> Date: Wed, 15 Jul 2026 15:46:43 +0530 Subject: [PATCH] feat(amazon): enhance playground with Amazon-specific field options and hints --- .../components/playground-runner.tsx | 9 ++++ .../playground/components/schema-form.tsx | 45 ++++++++++++++++++- .../playground/platform-overrides/amazon.tsx | 38 ++++++++++++++++ 3 files changed, 91 insertions(+), 1 deletion(-) create mode 100644 surfsense_web/lib/playground/platform-overrides/amazon.tsx diff --git a/surfsense_web/app/dashboard/[workspace_id]/playground/components/playground-runner.tsx b/surfsense_web/app/dashboard/[workspace_id]/playground/components/playground-runner.tsx index 6b426b196..32624ca55 100644 --- a/surfsense_web/app/dashboard/[workspace_id]/playground/components/playground-runner.tsx +++ b/surfsense_web/app/dashboard/[workspace_id]/playground/components/playground-runner.tsx @@ -14,6 +14,11 @@ import { AppError } from "@/lib/error"; import { findVerb } from "@/lib/playground/catalog"; import { formatCost, formatDuration, formatPricing } from "@/lib/playground/format"; import { buildPayload, initialFormValues, parseSchemaFields } from "@/lib/playground/json-schema"; +import { + AmazonMarketplaceHint, + getAmazonFieldOptions, + hasAmazonFranceValue, +} from "@/lib/playground/platform-overrides/amazon"; import { ApiReference } from "./api-reference"; import { OutputViewer } from "./output-viewer"; import { RunProgressPanel } from "./run-progress-panel"; @@ -171,6 +176,8 @@ export function PlaygroundRunner({ workspaceId, platform, verb }: PlaygroundRunn [run.detail] ); const endpoint = `POST /workspaces/${workspaceId}/scrapers/${platform}/${verb}`; + const isAmazonScrape = platform === "amazon" && verb === "scrape"; + const hasAmazonFranceUrl = useMemo(() => hasAmazonFranceValue(values), [values]); useEffect(() => { const previousStatus = previousStatusRef.current; @@ -260,7 +267,9 @@ export function PlaygroundRunner({ workspaceId, platform, verb }: PlaygroundRunn values={values} onChange={handleChange} disabled={isRunning} + getFieldOptions={isAmazonScrape ? getAmazonFieldOptions : undefined} /> + {isAmazonScrape ? : null}