This commit is contained in:
rgrgogu
2026-07-20 08:17:38 +08:00
parent cab0883512
commit d021725c1b
8 changed files with 149 additions and 168 deletions
@@ -2,7 +2,7 @@
// Column definitions and pinning for the standalone Lesson Library table.
import { Badge } from "@/components/ui/badge";
import { Clock } from "lucide-react";
import { Clock, Layers } from "lucide-react";
import { buildColumns } from "@/utils/table.util";
import { buildSelectionColumn } from "@/components/generic/Table/buildSelectionColumn";
import { buildRowActionsColumn } from "@/components/generic/Table/buildRowActionsColumn";
@@ -13,13 +13,23 @@ export const columnPinning = {
left: [],
};
const COURSE_STATUS_BADGE = {
published: "default",
draft: "secondary",
standalone: "outline",
};
const cellOverrides = {
title: (info) => {
const inUnit = parseInt(info.row.original.unit_count ?? 0, 10) > 0;
return (
<div className="flex items-center gap-1.5 min-w-0">
{inUnit && (
<Badge variant="secondary" className="gap-1 text-[10px] font-medium shrink-0">
<Layers className="h-3 w-3" />
Unit
</Badge>
)}
<span className="block truncate max-w-56 text-sm" title={info.getValue()}>
{info.getValue()}
</span>
</div>
);
},
duration_seconds: (info) => {
const seconds = parseInt(info.getValue() ?? 0, 10);
return (
@@ -39,11 +49,6 @@ const cellOverrides = {
</Badge>
);
},
course_status: (info) => (
<Badge variant={COURSE_STATUS_BADGE[info.getValue()] ?? "outline"} className="text-xs capitalize">
{info.getValue()}
</Badge>
),
};
export function buildDataColumns(attributes, rowActions) {