mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-28 18:46:02 +00:00
better behaviour of database widget search
This commit is contained in:
@@ -96,15 +96,19 @@ function AppObjectListItem({
|
|||||||
function AppObjectGroup({ group, items }) {
|
function AppObjectGroup({ group, items }) {
|
||||||
const [isExpanded, setIsExpanded] = React.useState(true);
|
const [isExpanded, setIsExpanded] = React.useState(true);
|
||||||
const theme = useTheme();
|
const theme = useTheme();
|
||||||
|
const filtered = items.filter(x => x.component);
|
||||||
|
let countText = filtered.length.toString();
|
||||||
|
if (filtered.length < items.length) countText += `/${items.length}`;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<GroupDiv onClick={() => setIsExpanded(!isExpanded)} theme={theme}>
|
<GroupDiv onClick={() => setIsExpanded(!isExpanded)} theme={theme}>
|
||||||
<ExpandIconHolder>
|
<ExpandIconHolder>
|
||||||
<ExpandIcon isExpanded={isExpanded} />
|
<ExpandIcon isExpanded={isExpanded} />
|
||||||
</ExpandIconHolder>
|
</ExpandIconHolder>
|
||||||
{group} {items && `(${items.filter(x => x.component).length})`}
|
{group} {items && `(${countText})`}
|
||||||
</GroupDiv>
|
</GroupDiv>
|
||||||
{isExpanded && items.map(x => x.component)}
|
{isExpanded && filtered.map(x => x.component)}
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -141,8 +145,7 @@ export function AppObjectList({
|
|||||||
const listGrouped = _.compact(
|
const listGrouped = _.compact(
|
||||||
(list || []).map(data => {
|
(list || []).map(data => {
|
||||||
const matcher = AppObjectComponent.createMatcher && AppObjectComponent.createMatcher(data);
|
const matcher = AppObjectComponent.createMatcher && AppObjectComponent.createMatcher(data);
|
||||||
if (matcher && !matcher(filter)) return null;
|
const component = matcher && !matcher(filter) ? null : createComponent(data);
|
||||||
const component = createComponent(data);
|
|
||||||
const group = groupFunc(data);
|
const group = groupFunc(data);
|
||||||
return { group, data, component };
|
return { group, data, component };
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -5,13 +5,15 @@ import { AppObjectCore } from './AppObjectCore';
|
|||||||
import { AppObjectList } from './AppObjectList';
|
import { AppObjectList } from './AppObjectList';
|
||||||
|
|
||||||
function ColumnAppObject({ data, commonProps }) {
|
function ColumnAppObject({ data, commonProps }) {
|
||||||
const { columnName, dataType } = data;
|
const { columnName, dataType, foreignKey } = data;
|
||||||
|
let extInfo = dataType;
|
||||||
|
if (foreignKey) extInfo += ` -> ${foreignKey.refTableName}`;
|
||||||
return (
|
return (
|
||||||
<AppObjectCore
|
<AppObjectCore
|
||||||
{...commonProps}
|
{...commonProps}
|
||||||
data={data}
|
data={data}
|
||||||
title={columnName}
|
title={columnName}
|
||||||
extInfo={dataType}
|
extInfo={extInfo}
|
||||||
icon={getColumnIcon(data, true)}
|
icon={getColumnIcon(data, true)}
|
||||||
disableHover
|
disableHover
|
||||||
/>
|
/>
|
||||||
|
|||||||
Reference in New Issue
Block a user