import React from 'react'; import styled from 'styled-components'; import _ from 'lodash'; import ObjectListControl from '../utility/ObjectListControl'; import { TableColumn } from '../utility/TableControl'; import { useTableInfo, useDbCore } from '../utility/metadataLoaders'; import useTheme from '../theme/useTheme'; import ColumnLabel from '../datagrid/ColumnLabel'; import { FontIcon } from '../icons'; const WhitePage = styled.div` position: absolute; left: 0; top: 0; right: 0; bottom: 0; background-color: ${props => props.theme.main_background}; overflow: auto; `; const IconTextSpan = styled.span` white-space: nowrap; `; function getConstraintIcon(data) { if (data.constraintType == 'primaryKey') return 'img primary-key'; if (data.constraintType == 'foreignKey') return 'img foreign-key'; return null; } function ConstraintLabel({ data }) { const icon = getConstraintIcon(data); return ( {data.constraintName} ); } export default function TableStructureTab({ conid, database, schemaName, pureName, objectTypeField = 'tables' }) { const theme = useTheme(); const tableInfo = useDbCore({ conid, database, schemaName, pureName, objectTypeField }); if (!tableInfo) return null; const { columns, primaryKey, foreignKeys, dependencies } = tableInfo; return ( ({ ...x, ordinal: index + 1 }))} NameComponent={({ data }) => } // makeAppObj={columnAppObject} title="Columns" > (row.notNull ? 'YES' : 'NO')} /> (row.isSparse ? 'YES' : 'NO')} /> (row.isPersisted ? 'YES' : 'NO')} /> {/* {_.includes(dbCaps.columnListOptionalColumns, 'referencedTableNamesFormatted') && ( )} ( this.deleteColumn(row)} > Delete {' '} |{' '} this.editColumn(row)} > Edit )} /> */} row.columns.map(x => x.columnName).join(', ')} /> row.columns.map(x => x.columnName).join(', ')} /> row.refTableName} /> row.columns.map(x => x.refColumnName).join(', ')} /> row.columns.map(x => x.columnName).join(', ')} /> row.pureName} /> row.columns.map(x => x.refColumnName).join(', ')} /> ); }