diff --git a/eslint.config.mjs b/eslint.config.mjs index 49900e7db..4832efcab 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -18,14 +18,14 @@ const compat = new FlatCompat({ export default [ { - ignores: ['**/dist', '**/node_modules/'], + ignores: ['**/dist', '**/*.mjs', '**/node_modules/'], }, ...fixupConfigRules( compat.extends( 'eslint:recommended', 'plugin:@typescript-eslint/recommended', 'plugin:@typescript-eslint/stylistic', - 'plugin:react/recommended', + // 'plugin:react/recommended', 'plugin:react-hooks/recommended', ), ), @@ -38,25 +38,17 @@ export default [ languageOptions: { globals: { ...globals.browser, - ...globals.amd, - ...globals.node, }, parser: tsParser, - ecmaVersion: 'latest', - sourceType: 'module', + // ecmaVersion: 'latest', + // sourceType: 'module', - parserOptions: { - ecmaFeatures: { - jsx: true, - }, - }, - }, - - settings: { - react: { - version: 'detect', - }, + // parserOptions: { + // ecmaFeatures: { + // jsx: true, + // }, + // }, }, rules: { diff --git a/package-lock.json b/package-lock.json index 9819195cf..228f592d8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -84,7 +84,6 @@ "use-debounce": "10.0.1" }, "devDependencies": { - "@babel/eslint-parser": "7.24.8", "@babel/preset-react": "7.24.7", "@emotion/babel-plugin": "11.11.0", "@eslint/compat": "1.1.0", @@ -231,24 +230,6 @@ "url": "https://opencollective.com/babel" } }, - "node_modules/@babel/eslint-parser": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.24.8.tgz", - "integrity": "sha512-nYAikI4XTGokU2QX7Jx+v4rxZKhKivaQaREZjuW3mrJrbdWJ5yUfohnoUULge+zEEaKjPYNxhoRgUKktjXtbwA==", - "dev": true, - "dependencies": { - "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", - "eslint-visitor-keys": "^2.1.0", - "semver": "^6.3.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || >=14.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.11.0", - "eslint": "^7.5.0 || ^8.0.0 || ^9.0.0" - } - }, "node_modules/@babel/generator": { "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", @@ -3409,15 +3390,6 @@ } } }, - "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { - "version": "5.1.1-v1", - "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", - "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", - "dev": true, - "dependencies": { - "eslint-scope": "5.1.1" - } - }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -8621,37 +8593,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-scope/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, "node_modules/eslint/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", diff --git a/package.json b/package.json index 12949edd4..d84b004a8 100644 --- a/package.json +++ b/package.json @@ -94,7 +94,6 @@ "use-debounce": "10.0.1" }, "devDependencies": { - "@babel/eslint-parser": "7.24.8", "@babel/preset-react": "7.24.7", "@emotion/babel-plugin": "11.11.0", "@eslint/compat": "1.1.0", diff --git a/src/components/Projekte/Daten/TpopFilter/ActiveFilters.tsx b/src/components/Projekte/Daten/TpopFilter/ActiveFilters.tsx new file mode 100644 index 000000000..12bc26160 --- /dev/null +++ b/src/components/Projekte/Daten/TpopFilter/ActiveFilters.tsx @@ -0,0 +1,85 @@ +import { useContext } from 'react' +import styled from '@emotion/styled' +import { observer } from 'mobx-react-lite' +import { useParams } from 'react-router-dom' + +import storeContext from '../../../../storeContext.js' +import ErrorBoundary from '../../../shared/ErrorBoundary.jsx' + +const FilterCommentTitle = styled.div` + margin-top: -10px; + margin-bottom: -10px; + padding: 0 10px; + font-size: 0.75em; + font-weight: bold; + color: rgba(0, 0, 0, 0.87); +` +const FilterCommentList = styled.ul`` +const FilterComment = styled.li` + padding: 0 10px; + font-size: 0.75em; +` + +export const ActiveFilters = observer(() => { + const { apId } = useParams() + + const store = useContext(storeContext) + + const { nodeLabelFilter, mapFilter, apFilter, artIsFiltered, popIsFiltered } = + store.tree + + const navApFilterComment = apFilter + ? `Navigationsbaum, "nur AP"-Filter: Nur Teil-Populationen von AP-Arten werden berücksichtigt.` + : undefined + const navHiearchyComment = + // popId ? 'Navigationsbaum, Hierarchie-Filter: Im Navigationsbaum ist eine Population gewählt. Es werden nur ihre Teil-Populationen berücksichtigt.' : + apId + ? 'Navigationsbaum, Hierarchie-Filter: Im Navigationsbaum ist eine Art gewählt. Es werden nur ihre Teil-Populationen berücksichtigt.' + : undefined + const navLabelComment = nodeLabelFilter.tpop + ? `Navigationsbaum, Label-Filter: Das Label der Teil-Populationen wird nach "${nodeLabelFilter.tpop}" gefiltert.` + : undefined + const artHierarchyComment = artIsFiltered + ? 'Formular-Filter, Ebene Art: Es werden nur Teil-Populationen berücksichtigt, deren Art die Bedingungen des gesetzten Filters erfüllt.' + : undefined + const popHierarchyComment = popIsFiltered + ? 'Formular-Filter, Ebene Population: Es werden nur Teil-Populationen berücksichtigt, deren Population die Bedingungen des gesetzten Filters erfüllt.' + : undefined + const mapFilterComment = mapFilter + ? 'Karten-Filter: wird angewendet.' + : undefined + + const showFilterComments = + !!navApFilterComment || + !!navHiearchyComment || + !!navLabelComment || + !!artHierarchyComment || + !!popHierarchyComment || + !!mapFilter + + if (!showFilterComments) return null + + return ( + + Zusätzlich aktive Filter: + + {!!navApFilterComment && ( + {navApFilterComment} + )} + {!!navHiearchyComment && ( + {navHiearchyComment} + )} + {!!navLabelComment && {navLabelComment}} + {!!artHierarchyComment && ( + {artHierarchyComment} + )} + {!!popHierarchyComment && ( + {popHierarchyComment} + )} + {!!mapFilterComment && ( + {mapFilterComment} + )} + + + ) +}) diff --git a/src/components/Projekte/Daten/TpopFilter/index.jsx b/src/components/Projekte/Daten/TpopFilter/index.jsx index 1797a1748..89e08782d 100644 --- a/src/components/Projekte/Daten/TpopFilter/index.jsx +++ b/src/components/Projekte/Daten/TpopFilter/index.jsx @@ -16,6 +16,7 @@ import ErrorBoundary from '../../../shared/ErrorBoundary.jsx' import Error from '../../../shared/Error.jsx' import OrTabs from './Tabs.jsx' import useSearchParamsState from '../../../../modules/useSearchParamsState.js' +import { ActiveFilters } from './ActiveFilters.tsx' const Container = styled.div` flex-grow: 1; @@ -75,7 +76,7 @@ const TpopFilter = () => { const [activeTab, setActiveTab] = useState(0) useEffect(() => { if (dataFilter.tpop.length - 1 < activeTab) { - // filter was emtied, need to set correct tab + // filter was emptied, need to set correct tab setActiveTab(0) } }, [activeTab, dataFilter.tpop.length]) @@ -142,31 +143,7 @@ const TpopFilter = () => { filteredNr={dataTpops?.allTpopsFiltered?.totalCount ?? '...'} activeTab={activeTab} /> - {showFilterComments && ( - <> - Zusätzlich aktive Filter: - - {!!navApFilterComment && ( - {navApFilterComment} - )} - {!!navHiearchyComment && ( - {navHiearchyComment} - )} - {!!navLabelComment && ( - {navLabelComment} - )} - {!!artHierarchyComment && ( - {artHierarchyComment} - )} - {!!popHierarchyComment && ( - {popHierarchyComment} - )} - {!!mapFilterComment && ( - {mapFilterComment} - )} - - - )} +