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}
+
+ );
+}