/
softailor
/
gridient
Обзор
Документация
Войти
/
softailor
/
gridient
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
frontend/src/modules/ViewItemModal/components/ViewForm/Row/Row.tsx
75 строк
2 KB
Jenkins
Auto add
18 фев 2026, 10:19
18 фев 2026, 10:19
1e6c4f8
Код
Авторство
О чём код?
import { FC } from "react"; import { Checkbox } from "antd"; import { FieldType } from "consts"; import { FieldValue } from "models"; import { formatDate } from "utils/formatters/formatDate"; import { formatNumber } from "utils/formatters/formatNumber"; import { FileField } from "../FileField"; export const Row: FC<{ item: FieldValue; listId?: number; itemId?: number }> = ({ item, listId, itemId, }) => { const renderValue = (field: FieldValue) => { switch (field.fieldType) { case FieldType.Number: return field.value !== null && field.value !== undefined ? formatNumber(field.value, field.fieldOptions ?? undefined) : "–"; case FieldType.Date: return field.value ? formatDate(field.value, field.fieldOptions ?? undefined) : "–"; case FieldType.File: return <FileField listId={listId} itemId={itemId} value={field.value} />; case FieldType.Boolean: return convertToBooleanValue(field.value); case FieldType.MultiChoice: return ( <Checkbox.Group defaultValue={field.value ? field.value.split(";") : []} options={ field.fieldOptions ? field.fieldOptions.split(";").map((option) => ({ label: option, value: option, disabled: true, })) : [] } /> ); default: return field.value || "–"; } }; const convertToBooleanValue = (val: unknown): string => { if (val === true || val === "true" || val === "1" || val === 1) return "Да"; if (val === false || val === "false" || val === "0" || val === 0) return "Нет"; return "–"; }; return ( <div className="view-form__row"> <label htmlFor={item.fieldName} className="view-form__row-label"> {item.fieldTitle} </label> <div id={item.fieldName} className="view-form__row-value"> {item.value || item.fieldType === FieldType.Boolean ? ( renderValue(item) ) : ( <span style={{ color: "rgba(51, 51, 51, 0.25)" }}>–</span> )} </div> </div> ); };