/
softailor
/
gridient
Обзор
Документация
Войти
/
softailor
/
gridient
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
frontend/src/modules/ListView/components/TableView/utils.tsx
87 строк
2 KB
Jenkins
Auto add
18 фев 2026, 10:19
18 фев 2026, 10:19
1e6c4f8
Код
Авторство
О чём код?
import { ReactNode } from "react"; import { FieldType } from "consts"; import { ViewField } from "models"; import { convertToBooleanValue } from "utils"; import { formatDate } from "utils/formatters/formatDate"; import { formatNumber } from "utils/formatters/formatNumber"; export const getTableColumns = (columns?: ViewField[]) => { if (!columns) { return []; } const renderEllipsis = (content: ReactNode) => ( <div style={{ maxWidth: "300px", overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap", }} > {content} </div> ); const mappedColumns = columns.map((item) => { const baseColumn = { dataIndex: item.name, fieldType: item.fieldType, title: item.title, sorter: true, }; switch (item.fieldType) { case FieldType.Note: case FieldType.User: case FieldType.Text: return { ...baseColumn, ellipsis: true, render: renderEllipsis, }; case FieldType.Boolean: return { ...baseColumn, render: (value: string) => convertToBooleanValue(value), }; case FieldType.Number: return { ...baseColumn, render: (value: number | string) => { if (value == null || value === "") return ""; const formatted = formatNumber(value, item.options); return renderEllipsis(formatted); }, }; case FieldType.Date: return { ...baseColumn, render: (value: string | Date | null) => { if (!value) return ""; const formatted = formatDate(value, item.options); return renderEllipsis(formatted); }, }; default: return { ...baseColumn, ellipsis: true, }; } }); const idColumn = { dataIndex: "ItemId", title: "ИД", sorter: true, }; return [idColumn, ...mappedColumns]; };