import React from 'react'; import DataGrid from '../datagrid/DataGrid'; import { ViewGridDisplay, createGridCache, createChangeSet } from '@dbgate/datalib'; import { useConnectionInfo, useViewInfo } from '../utility/metadataLoaders'; import engines from '@dbgate/engines'; import useUndoReducer from '../utility/useUndoReducer'; import usePropsCompare from '../utility/usePropsCompare'; import { useUpdateDatabaseForTab } from '../utility/globalState'; import useGridConfig from '../utility/useGridConfig'; import SqlDataGridCore from '../datagrid/SqlDataGridCore'; export default function ViewDataTab({ conid, database, schemaName, pureName, tabVisible, toolbarPortalRef, tabid }) { const viewInfo = useViewInfo({ conid, database, schemaName, pureName }); const [config, setConfig] = useGridConfig(tabid); const [cache, setCache] = React.useState(createGridCache()); const [changeSetState, dispatchChangeSet] = useUndoReducer(createChangeSet()); useUpdateDatabaseForTab(tabVisible, conid, database); const connection = useConnectionInfo({ conid }); // usePropsCompare({ tableInfo, connection, config, cache }); const display = React.useMemo( () => viewInfo && connection ? new ViewGridDisplay( viewInfo, engines(connection), //@ts-ignore config, setConfig, cache, setCache ) : null, [viewInfo, connection, config, cache] ); if (!display) return null; return ( ); }