diff --git a/ui/src/app/metadata/component/properties/ArrayProperty.js b/ui/src/app/metadata/component/properties/ArrayProperty.js index 1e23ca383..446abfdd9 100644 --- a/ui/src/app/metadata/component/properties/ArrayProperty.js +++ b/ui/src/app/metadata/component/properties/ArrayProperty.js @@ -1,6 +1,6 @@ import { faEye } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import React from 'react'; +import React, { useState } from 'react'; import Translate from '../../../i18n/components/translate'; import { usePropertyWidth } from './hooks'; import { PropertyValue } from './PropertyValue'; @@ -16,30 +16,33 @@ const isUri = (value) => { return true; } -const getItemType = (property) => { - const items = property.items; - const def = 'default'; - return items ? items.widget ? items.widget.id : def : def; -} - const isUrl = (str) => { return isUri(str); } -export function ArrayProperty ({ property, columns, index, onPreview }) { +export function ArrayProperty ({ property, columns, onPreview }) { - const keys = property.value.reduce((val, version) => version ? version.length > val ? version.length : val : val, 0); - const range = [...Array(keys).keys()]; + const width = usePropertyWidth(columns); - const dataList = property.widget?.data; + const [keys, setKeys] = React.useState(0); + const [range, setRange] = React.useState([]); + const [dataList, setDataList] = React.useState([]); - const width = usePropertyWidth(columns); + React.useEffect(() => { + setKeys(property.value.reduce((val, version) => version ? version.length > val ? version.length : val : val, 0)); + setDataList(property.items?.enum); - const type = getItemType(property); + + console.log(property, keys); + }, [property]); + + React.useEffect(() => { + setRange([...Array(keys).keys()]) + }, [keys]); return ( <> - {property.items.type === 'object' && + {property?.items?.type === 'object' &&