@1771technologies/lytenyte-pro
Version:
Blazingly fast headless React data grid with 100s of features.
30 lines (29 loc) • 942 B
JavaScript
import { GROUP_COLUMN_PREFIX } from "@1771technologies/lytenyte-shared";
export function resolveColumn(c, errorRef, meta) {
if (typeof c === "string") {
if (c.startsWith(GROUP_COLUMN_PREFIX)) {
return meta.columnsVisible.find((x) => x.id === c);
}
if (!meta.columnLookup.has(c)) {
errorRef.current = true;
console.error(`Invalid column ${c}`);
}
return c;
}
if (typeof c === "number") {
const col = meta.columnsVisible.at(c);
if (!col) {
errorRef.current = true;
console.error(`Invalid column at index ${c}`);
}
return col?.id;
}
if (c.id.startsWith(GROUP_COLUMN_PREFIX)) {
return meta.columnsVisible.find((x) => x.id === c.id);
}
if (!meta.columnLookup.has(c.id)) {
errorRef.current = true;
console.error(`Invalid column ${c.id}`);
}
return c.id;
}