import useSWR from 'swr' import { fetcher } from '../../http/axiosInstance' import { BASE_URL } from '../../constants' import { Checkbox, Divider, Flex, Grid, Stack, Text } from '@mantine/core' import { IObjectParam, IParam } from '../../interfaces/objects' import { decodeDoubleEncodedString } from '../../utils/format' import TCBParameter from './TCBParameter' interface ObjectParameterProps { showLabel?: boolean, param: IObjectParam, } const ObjectParameter = ({ param, showLabel = true }: ObjectParameterProps) => { const { data: paramData } = useSWR( `/general/params/all?param_id=${param.id_param}`, (url) => fetcher(url, BASE_URL.ems).then(res => res[0] as IParam), { revalidateOnFocus: false } ) const Parameter = (type: string, name: string, value: unknown, vtable: string) => { switch (type) { case 'bit': return ( {name} ) case 'varchar(200)': return ( {decodeDoubleEncodedString(value as string)} ) case 'varchar(5)': return ( {decodeDoubleEncodedString(value as string)} ) case 'bigint': return ( {(value as string)} ) case 'GTCB': return ( ) case 'TCB': return ( ) default: return (
{type}
) } } return ( <> {paramData && {showLabel && } {Parameter(paramData.format, paramData.name, param.value, paramData.vtable)} } ) } export default ObjectParameter