feat: purchase-plans page global update

This commit is contained in:
ivannoskov
2026-03-04 08:29:11 +03:00
parent ef903f1b23
commit 6a7b4dedcd
8 changed files with 690 additions and 223 deletions

View File

@@ -1,6 +1,6 @@
"use client";
import { ArrowUpDown } from "lucide-react";
import { ArrowUpDown, ArrowUp, ArrowDown } from "lucide-react";
import { cn } from "@/lib/utils";
import { ALL_COLUMNS, getColumnStyle, type ColumnConfig } from "@/lib/config/placement-columns";
@@ -84,38 +84,17 @@ export function PlacementsTableHeader({
onClick={() => handleSort(column)}
title={column.sortable ? "Нажмите для сортировки" : undefined}
>
{column.editable && (
<span
className="flex items-center gap-0.5"
title={column.partialEdit ? "Частично редактируемое" : "Редактируемое"}
>
<span className="text-[10px] opacity-40 flex items-center gap-0.5">
(
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
strokeWidth="2"
strokeLinecap="round"
strokeLinejoin="round"
className="h-3 w-3"
>
<path d="M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7" />
<path d="M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z" />
</svg>
)
</span>
</span>
)}
<span className="whitespace-nowrap">{column.label}</span>
{column.sortable && (
<ArrowUpDown
className={cn(
"h-3 w-3 opacity-40",
sortDir && "opacity-100 text-primary"
)}
/>
sortDir ? (
sortDir === "asc" ? (
<ArrowUp className="h-3 w-3 text-primary" />
) : (
<ArrowDown className="h-3 w-3 text-primary" />
)
) : (
<ArrowUpDown className="h-3 w-3 opacity-40" />
)
)}
</div>
);