better behaviour of database widget search

This commit is contained in:
Jan Prochazka
2021-01-23 08:55:17 +01:00
parent 6e60cf8691
commit 5935c9a9e7
2 changed files with 11 additions and 6 deletions

View File

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

View File

@@ -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
/> />