@primer/react
Version:
An implementation of GitHub's Primer Design System using React
109 lines (108 loc) • 3.53 kB
JavaScript
import { useTable } from "./useTable.js";
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, TableSortHeader } from "./Table.js";
import { c } from "react-compiler-runtime";
import { jsx, jsxs } from "react/jsx-runtime";
//#region src/DataTable/DataTable.tsx
function defaultGetRowId(row) {
return row.id;
}
function DataTable(t0) {
const $ = c(27);
const { "aria-labelledby": labelledby, "aria-describedby": describedby, cellPadding, columns, data, initialSortColumn, initialSortDirection, externalSorting, getRowId: t1, onToggleSort } = t0;
const getRowId = t1 === void 0 ? defaultGetRowId : t1;
let t2;
if ($[0] !== columns || $[1] !== data || $[2] !== externalSorting || $[3] !== getRowId || $[4] !== initialSortColumn || $[5] !== initialSortDirection) {
t2 = {
data,
columns,
initialSortColumn,
initialSortDirection,
getRowId,
externalSorting
};
$[0] = columns;
$[1] = data;
$[2] = externalSorting;
$[3] = getRowId;
$[4] = initialSortColumn;
$[5] = initialSortDirection;
$[6] = t2;
} else t2 = $[6];
const { headers, rows, actions, gridTemplateColumns } = useTable(t2);
let t3;
if ($[7] !== actions || $[8] !== headers || $[9] !== onToggleSort) {
let t4;
if ($[11] !== actions || $[12] !== onToggleSort) {
t4 = (header) => {
if (header.isSortable()) return /*#__PURE__*/ jsx(TableSortHeader, {
align: header.column.align,
direction: header.getSortDirection(),
onToggleSort: () => {
const nextDirection = header.getSortDirection() === "ASC" ? "DESC" : "ASC";
actions.sortBy(header);
onToggleSort === null || onToggleSort === void 0 || onToggleSort(header.id, nextDirection);
},
children: typeof header.column.header === "string" ? header.column.header : header.column.header()
}, header.id);
return /*#__PURE__*/ jsx(TableHeader, {
align: header.column.align,
children: typeof header.column.header === "string" ? header.column.header : header.column.header()
}, header.id);
};
$[11] = actions;
$[12] = onToggleSort;
$[13] = t4;
} else t4 = $[13];
t3 = headers.map(t4);
$[7] = actions;
$[8] = headers;
$[9] = onToggleSort;
$[10] = t3;
} else t3 = $[10];
let t4;
if ($[14] !== t3) {
t4 = /*#__PURE__*/ jsx(TableHead, { children: /*#__PURE__*/ jsx(TableRow, { children: t3 }) });
$[14] = t3;
$[15] = t4;
} else t4 = $[15];
let t5;
if ($[16] !== rows) {
t5 = rows.map(_temp);
$[16] = rows;
$[17] = t5;
} else t5 = $[17];
let t6;
if ($[18] !== t5) {
t6 = /*#__PURE__*/ jsx(TableBody, { children: t5 });
$[18] = t5;
$[19] = t6;
} else t6 = $[19];
let t7;
if ($[20] !== cellPadding || $[21] !== describedby || $[22] !== gridTemplateColumns || $[23] !== labelledby || $[24] !== t4 || $[25] !== t6) {
t7 = /*#__PURE__*/ jsxs(Table, {
"aria-labelledby": labelledby,
"aria-describedby": describedby,
cellPadding,
gridTemplateColumns,
children: [t4, t6]
});
$[20] = cellPadding;
$[21] = describedby;
$[22] = gridTemplateColumns;
$[23] = labelledby;
$[24] = t4;
$[25] = t6;
$[26] = t7;
} else t7 = $[26];
return t7;
}
function _temp(row) {
return /*#__PURE__*/ jsx(TableRow, { children: row.getCells().map((cell) => /*#__PURE__*/ jsx(TableCell, {
scope: cell.rowHeader ? "row" : void 0,
align: cell.column.align,
children: cell.column.renderCell ? cell.column.renderCell(row.getValue()) : cell.getValue()
}, cell.id)) }, row.id);
}
_temp.displayName = "_temp";
//#endregion
export { DataTable };