lisgt matcher refactor

This commit is contained in:
SPRINX0\prochazka
2024-12-16 13:08:59 +01:00
parent a20b4b3339
commit c46c9a4e16
10 changed files with 24 additions and 36 deletions

View File

@@ -29,8 +29,8 @@
export const extractKey = data => data.fileName;
export const createMatcher =
({ fileName }) =>
filter =>
({ fileName }) =>
filterName(filter, fileName);
const APP_ICONS = {
'config.json': 'img json',

View File

@@ -1,6 +1,6 @@
<script lang="ts" context="module">
export const extractKey = data => data.name;
export const createMatcher = data => filter => filterName(filter, data.name);
export const createMatcher = filter => data => filterName(filter, data.name);
</script>
<script lang="ts">

View File

@@ -29,21 +29,12 @@
export let collapsedGroupNames = writable([]);
export let onChangeFilteredList;
$: filtered = !groupFunc
? list.filter(data => {
const matcher = module.createMatcher && module.createMatcher(data, passProps?.searchSettings);
if (matcher && !matcher(filter)) return false;
return true;
})
: null;
$: matcher = module.createMatcher && module.createMatcher(filter, passProps?.searchSettings);
$: childMatcher = module.createChildMatcher && module.createChildMatcher(filter, passProps?.searchSettings);
$: childrenMatched = !groupFunc
? list.filter(data => {
const matcher = module.createChildMatcher && module.createChildMatcher(data, passProps?.searchSettings);
if (matcher && !matcher(filter)) return false;
return true;
})
: null;
$: filtered = !groupFunc ? list.filter(data => !matcher || matcher(data)) : null;
$: childrenMatched = !groupFunc ? list.filter(data => !childMatcher || childMatcher(data)) : null;
// let filtered = [];
@@ -62,8 +53,7 @@
$: listGrouped = groupFunc
? _.compact(
(list || []).map(data => {
const matcher = module.createMatcher && module.createMatcher(data, passProps?.searchSettings);
const isMatched = matcher && !matcher(filter) ? false : true;
const isMatched = matcher && !matcher(data) ? false : true;
const group = groupFunc(data);
return { group, data, isMatched };
})

View File

@@ -42,8 +42,8 @@
export const extractKey = data => data.fileName;
export const createMatcher =
({ fileName }) =>
filter =>
({ fileName }) =>
filterName(filter, fileName);
const ARCHIVE_ICONS = {
'table.yaml': 'img table',
@@ -70,7 +70,7 @@
import { getExtensions } from '../stores';
import createQuickExportMenu from '../utility/createQuickExportMenu';
import { exportQuickExportFile, } from '../utility/exportFileTools';
import { exportQuickExportFile } from '../utility/exportFileTools';
import openNewTab from '../utility/openNewTab';
import AppObjectCore from './AppObjectCore.svelte';
import InputTextModal from '../modals/InputTextModal.svelte';

View File

@@ -1,6 +1,6 @@
<script lang="ts" context="module">
export const extractKey = data => data.name;
export const createMatcher = data => filter => filterName(filter, data.name);
export const createMatcher = filter => data => filterName(filter, data.name);
</script>
<script lang="ts">

View File

@@ -1,11 +1,11 @@
<script context="module">
export const extractKey = data => data._id;
export const createMatcher = props => filter => {
export const createMatcher = filter => props => {
const { _id, displayName, server } = props;
const databases = getLocalStorage(`database_list_${_id}`) || [];
return filterName(filter, displayName, server, ...databases.map(x => x.name));
};
export const createChildMatcher = props => filter => {
export const createChildMatcher = filter => props => {
if (!filter) return false;
const { _id } = props;
const databases = getLocalStorage(`database_list_${_id}`) || [];

View File

@@ -3,11 +3,8 @@
export const extractKey = ({ schemaName, pureName }) => (schemaName ? `${schemaName}.${pureName}` : pureName);
export const createMatcher =
(
{ schemaName, pureName, objectComment, tableEngine, columns, objectTypeField, createSql },
cfg = DEFAULT_SEARCH_SETTINGS
) =>
filter => {
(filter, cfg = DEFAULT_SEARCH_SETTINGS) =>
({ schemaName, pureName, objectComment, tableEngine, columns, objectTypeField, createSql }) => {
const filterArgs = [];
if (cfg.schemaName) filterArgs.push(schemaName);
if (objectTypeField == 'tables') {
@@ -25,7 +22,8 @@
if (cfg.sqlObjectText) filterArgs.push(createSql);
}
return filterName(filter, ...filterArgs);
const res = filterName(filter, ...filterArgs);
return res;
};
export const createTitle = ({ schemaName, pureName }) => (schemaName ? `${schemaName}.${pureName}` : pureName);

View File

@@ -1,6 +1,9 @@
<script lang="ts" context="module">
export const extractKey = data => data.name;
export const createMatcher = ({ name, title }) => filter => filterName(filter, name, title);
export const createMatcher =
filter =>
({ name, title }) =>
filterName(filter, name, title);
</script>
<script lang="ts">

View File

@@ -104,8 +104,8 @@
export const extractKey = data => data.file;
export const createMatcher =
({ file }) =>
filter =>
({ file }) =>
filterName(filter, file);
</script>

View File

@@ -150,11 +150,8 @@
}));
}
$: flatFilteredList = objectList.filter(data => {
const matcher = databaseObjectAppObject.createMatcher(data, $databaseObjectAppObjectSearchSettings);
if (matcher && !matcher(filter)) return false;
return true;
});
$: matcher = databaseObjectAppObject.createMatcher(filter, $databaseObjectAppObjectSearchSettings);
$: flatFilteredList = objectList.filter(data => !matcher || matcher(data));
export function focus() {
domListHandler?.focusFirst();