| import type { PrRow } from "../api/form"; |
|
|
| type Props = { |
| rows: PrRow[]; |
| |
| className?: string; |
| }; |
|
|
| export function PrLineItemsTable({ rows, className = "" }: Props) { |
| if (!rows.length) return null; |
|
|
| return ( |
| <div |
| className={`flex min-h-0 w-full flex-1 flex-col overflow-hidden rounded-xl border border-outline-variant bg-white shadow-sm ${className}`} |
| > |
| <div className="shrink-0 border-b border-outline-variant bg-surface-container-high px-2 py-1.5 font-label-caps text-[8px] font-bold uppercase leading-none tracking-wide text-secondary"> |
| Line items |
| </div> |
| <div className="min-h-0 flex-1 overflow-auto"> |
| <table className="w-full min-w-[720px] table-fixed border-collapse text-left text-[11px] leading-snug"> |
| <colgroup> |
| <col className="w-[7%]" /> |
| <col className="w-[9%]" /> |
| <col className="w-[24%]" /> |
| <col className="w-[32%]" /> |
| <col className="w-[8%]" /> |
| <col className="w-[12%]" /> |
| </colgroup> |
| <thead className="sticky top-0 z-10"> |
| <tr className="border-b border-outline-variant bg-surface-container-low"> |
| <th className="px-2 py-1.5 align-bottom text-[10px] font-semibold text-primary"> |
| PR Line Item |
| </th> |
| <th className="px-2 py-1.5 align-bottom text-[10px] font-semibold text-primary"> |
| MAT GRP |
| </th> |
| <th className="px-2 py-1.5 align-bottom text-[10px] font-semibold text-primary"> |
| PR SHORT TEXT |
| </th> |
| <th className="px-2 py-1.5 align-bottom text-[10px] font-semibold text-primary"> |
| PR LONG TEXT |
| </th> |
| <th className="px-2 py-1.5 align-bottom text-center text-[10px] font-semibold text-primary"> |
| PR Quantity |
| </th> |
| <th className="px-2 py-1.5 align-bottom text-[10px] font-semibold text-primary"> |
| Delivery Date |
| </th> |
| </tr> |
| </thead> |
| <tbody> |
| {rows.map((r, idx) => ( |
| <tr |
| key={`${r.pr_line_item}-${idx}`} |
| className="border-b border-outline-variant/80 align-top last:border-0" |
| > |
| <td className="px-2 py-1 font-data-mono text-[10px] tabular-nums whitespace-nowrap"> |
| {r.pr_line_item} |
| </td> |
| <td className="px-2 py-1 font-data-mono text-[10px] whitespace-nowrap"> |
| {r.mat_grp} |
| </td> |
| <td className="min-w-0 px-2 py-1 break-words text-on-background"> |
| {r.pr_short_text} |
| </td> |
| <td className="min-w-0 px-2 py-1 break-words text-on-background"> |
| {r.pr_long_text} |
| </td> |
| <td className="px-2 py-1 text-center tabular-nums whitespace-nowrap"> |
| {r.pr_quantity} |
| </td> |
| <td className="min-w-0 px-2 py-1 whitespace-nowrap text-[10px] text-secondary"> |
| {r.delivery_date} |
| </td> |
| </tr> |
| ))} |
| </tbody> |
| </table> |
| </div> |
| </div> |
| ); |
| } |
|
|