diff --git a/packages/web/src/datagrid/ColumnManager.js b/packages/web/src/datagrid/ColumnManager.js index b308d87b7..73164a68f 100644 --- a/packages/web/src/datagrid/ColumnManager.js +++ b/packages/web/src/datagrid/ColumnManager.js @@ -6,6 +6,7 @@ import { ExpandIcon } from '../icons'; import InlineButton from '../widgets/InlineButton'; import { ManagerInnerContainer } from './ManagerStyles'; import SearchInput from '../widgets/SearchInput'; +import { WidgetTitle } from '../widgets/WidgetStyles'; const Wrapper = styled.div``; @@ -87,10 +88,18 @@ function ColumnManagerRow(props) { export default function ColumnManager(props) { const { display } = props; const [columnFilter, setColumnFilter] = React.useState(''); + const inputRef = React.useRef(null); + return ( <> + Columns - + display.hideAllColumns()}>Hide display.showAllColumns()}>Show diff --git a/packages/web/src/datagrid/DataGrid.js b/packages/web/src/datagrid/DataGrid.js index ab01cd194..cd66c7dcc 100644 --- a/packages/web/src/datagrid/DataGrid.js +++ b/packages/web/src/datagrid/DataGrid.js @@ -47,12 +47,10 @@ export default function DataGrid(props) { - Columns {props.showReferences && ( - References )} diff --git a/packages/web/src/datagrid/ReferenceManager.js b/packages/web/src/datagrid/ReferenceManager.js index aaad8195a..0f4a4210b 100644 --- a/packages/web/src/datagrid/ReferenceManager.js +++ b/packages/web/src/datagrid/ReferenceManager.js @@ -4,6 +4,7 @@ import { ManagerInnerContainer } from './ManagerStyles'; import { LinkIcon, ReferenceIcon } from '../icons'; import SearchInput from '../widgets/SearchInput'; import { filterName } from '@dbgate/datalib'; +import { WidgetTitle } from '../widgets/WidgetStyles'; const SearchBoxWrapper = styled.div` display: flex; @@ -46,11 +47,13 @@ export default function ReferenceManager(props) { const { baseTable } = display || {}; const { foreignKeys } = baseTable || {}; const { dependencies } = baseTable || {}; + const inputRef = React.useRef(null); return ( <> + References - + {foreignKeys && foreignKeys.length > 0 && ( diff --git a/packages/web/src/widgets/DatabaseWidget.js b/packages/web/src/widgets/DatabaseWidget.js index 5518ee07f..271668843 100644 --- a/packages/web/src/widgets/DatabaseWidget.js +++ b/packages/web/src/widgets/DatabaseWidget.js @@ -58,13 +58,14 @@ function ConnectionList() { axios.post('server-connections/refresh', { conid }); } }; + const inputRef = React.useRef(null); const [filter, setFilter] = React.useState(''); return ( <> - Connections + Connections - + Refresh @@ -94,11 +95,12 @@ function SqlObjectList({ conid, database }) { ((objects || {})[objectTypeField] || []).map((obj) => ({ ...obj, objectTypeField })) ) ); + const inputRef = React.useRef(null); return ( <> - Tables, views, functions + Tables, views, functions - + Refresh diff --git a/packages/web/src/widgets/SearchInput.js b/packages/web/src/widgets/SearchInput.js index 89c18a12a..634cd3389 100644 --- a/packages/web/src/widgets/SearchInput.js +++ b/packages/web/src/widgets/SearchInput.js @@ -7,7 +7,7 @@ const StyledInput = styled.input` min-width: 90px; `; -export default function SearchInput({ placeholder, filter, setFilter }) { +export default function SearchInput({ placeholder, filter, setFilter, inputRef = undefined }) { const handleKeyDown = (ev) => { if (ev.keyCode == keycodes.escape) { setFilter(''); @@ -15,6 +15,7 @@ export default function SearchInput({ placeholder, filter, setFilter }) { }; return ( { + if (inputRef && inputRef.current) inputRef.current.focus(); + }} + > + {children} + + ); +}