diff --git a/artifacts/api-server/src/routes/tools.ts b/artifacts/api-server/src/routes/tools.ts index 3758811..3c7134c 100644 --- a/artifacts/api-server/src/routes/tools.ts +++ b/artifacts/api-server/src/routes/tools.ts @@ -268,8 +268,8 @@ router.get("/compare", requireFeature("compare"), async (req, res): Promise 8) { - res.status(400).json({ error: "Maximum of 8 tools can be compared" }); + if (ids.length > 9) { + res.status(400).json({ error: "Maximum of 9 tools can be compared" }); return; } const tools = await db.select().from(toolsTable).where(and(isNull(toolsTable.deletedAt), inArray(toolsTable.id, ids))); diff --git a/artifacts/toolrate/src/components/tool-import-dialog.tsx b/artifacts/toolrate/src/components/tool-import-dialog.tsx index b441872..2044e6f 100644 --- a/artifacts/toolrate/src/components/tool-import-dialog.tsx +++ b/artifacts/toolrate/src/components/tool-import-dialog.tsx @@ -7,6 +7,7 @@ import { Textarea } from "@/components/ui/textarea"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select"; import { Label } from "@/components/ui/label"; +import { GuideHelp } from "@/components/guide-help"; import { Upload, FileUp, CheckCircle2, AlertCircle } from "lucide-react"; type Format = "auto" | "csv" | "json" | "yaml"; @@ -62,14 +63,24 @@ export function ToolImportDialog({ const canSubmit = data.trim().length > 0 && !importTools.isPending; + const placeholder = + format === "csv" + ? t("adminTools.importTextareaPlaceholderCsv") + : format === "json" + ? t("adminTools.importTextareaPlaceholderJson") + : format === "yaml" + ? t("adminTools.importTextareaPlaceholderYaml") + : t("adminTools.importTextareaPlaceholderAuto"); + return ( - + {t("adminTools.importTitle")} +
@@ -131,7 +142,7 @@ export function ToolImportDialog({