From 52ac8c2dcd963e81f103051ce893616939d52dae Mon Sep 17 00:00:00 2001 From: seveibar Date: Tue, 12 Nov 2024 11:39:57 -0800 Subject: [PATCH] add errors to dropdown menu, make part numbers go to jlcpcb --- src/components/BomTable.tsx | 24 +++++++++++++++++++++--- src/components/PreviewContent.tsx | 30 +++++++++++++++++++++--------- 2 files changed, 42 insertions(+), 12 deletions(-) diff --git a/src/components/BomTable.tsx b/src/components/BomTable.tsx index 9f49b082..ace5160f 100644 --- a/src/components/BomTable.tsx +++ b/src/components/BomTable.tsx @@ -1,19 +1,34 @@ import { AnyCircuitElement } from "circuit-json" +import { Link } from "wouter" interface BomTableProps { circuitJson: AnyCircuitElement[] } +export const linkify = (supplier: string, partNumber: string) => { + if (supplier === "jlcpcb") { + return ( + + {partNumber} + + ) + } + return partNumber +} + export const BomTable: React.FC = ({ circuitJson }) => { const sourceComponents = circuitJson.filter( - (el) => el.type === "source_component" + (el) => el.type === "source_component", ) const supplierColumns = new Set() sourceComponents.forEach((comp) => { if (comp.supplier_part_numbers) { Object.keys(comp.supplier_part_numbers).forEach((supplier) => - supplierColumns.add(supplier) + supplierColumns.add(supplier), ) } }) @@ -37,7 +52,10 @@ export const BomTable: React.FC = ({ circuitJson }) => { {comp.name} {Array.from(supplierColumns).map((supplier) => ( - {comp.supplier_part_numbers?.[supplier]?.[0] || ""} + {linkify( + supplier, + comp.supplier_part_numbers?.[supplier]?.[0] || "", + )} ))} diff --git a/src/components/PreviewContent.tsx b/src/components/PreviewContent.tsx index c696ce8c..f8e1f564 100644 --- a/src/components/PreviewContent.tsx +++ b/src/components/PreviewContent.tsx @@ -140,21 +140,33 @@ export const PreviewContent = ({ )} 3D - - Errors - {errorMessage && ( - - 1 - - )} - -
+
+ {errorMessage && ( + + )}
+ setActiveTab("error")} + className="flex" + > + +
Errors
+ {errorMessage && ( + + 1 + + )} +
setActiveTab("bom")}>