EN · DE · RU · FR · ES

#2622: index.jsx

projectforge-webapp/src/components/base/navigation/index.jsx React-Komponente, projectforge-webapp/src/components/base/navigation/index.jsx 38 Zeilen · 34 Code · 0 Kommentare · 4 leer
Zweck: React-Webapp: index.jsx. index.jsx ist Teil der Open-Source-Projektmanagement-Anwendung ProjectForge.

Quelltext (erste 100 Zeilen)

import PropTypes from 'prop-types';
import React from 'react';
import { menuItemPropType } from '../../../utilities/propTypes';
import { Nav } from '../../design';
import NavigationDropdown from './Dropdown';
import NavigationEntry from './Entry';

function Navigation({ entries, className = 'ml-auto', right = false }) {
    return (
        <Nav className={className}>
            {entries.map((entry) => {
                let Tag;

                if (entry.subMenu) {
                    Tag = NavigationDropdown;
                } else {
                    Tag = NavigationEntry;
                }
                return (
                    <Tag
                        {...entry}
                        key={entry.key || entry.id}
                        entryKey={entry.key}
                        right={right}
                    />
                );
            })}
        </Nav>
    );
}

Navigation.propTypes = {
    entries: PropTypes.arrayOf(menuItemPropType).isRequired,
    className: PropTypes.string,
    right: PropTypes.bool,
};

export default Navigation;

Git-Verlauf

7c88abd0f Abhängigkeiten aktualisiert (WIP)
3685edd6c Update auf React 18 (WIP)
2f659535f Rechtes Menü (Mein Konto usw.) ist jetzt als 'right' markiert für korrekte Ausrichtung und Abstände.
36bfe1dbe Neue React-Version, ESLint-Review von Fin.
c23bfbdf5 ESLint-Review mit Fin erforderlich.

7c88abd0f

Abhängigkeiten aktualisiert (WIP)
7c88abd0faab49ba2656010cb6a687f944b874e1
diff --git a/projectforge-webapp/src/components/base/navigation/index.jsx b/projectforge-webapp/src/components/base/navigation/index.jsx
index 0a502a8bc..2529c75b6 100644
--- a/projectforge-webapp/src/components/base/navigation/index.jsx
+++ b/projectforge-webapp/src/components/base/navigation/index.jsx
@@ -16,8 +16,14 @@ function Navigation({ entries, className = 'ml-auto', right = false }) {
                 } else {
                     Tag = NavigationEntry;
                 }
-                // eslint-disable-next-line max-len
-                return <Tag key={entry.key || entry.id} {...entry} entryKey={entry.key} right={right} />;
+                return (
+                    <Tag
+                        {...entry}
+                        key={entry.key || entry.id}
+                        entryKey={entry.key}
+                        right={right}
+                    />
+                );
             })}
         </Nav>
     );

3685edd6c

Update auf React 18 (WIP)
3685edd6c9f0dfd4582dbeb01c05491c254ccb84
diff --git a/projectforge-webapp/src/components/base/navigation/index.jsx b/projectforge-webapp/src/components/base/navigation/index.jsx
index cc9c74a08..0a502a8bc 100644
--- a/projectforge-webapp/src/components/base/navigation/index.jsx
+++ b/projectforge-webapp/src/components/base/navigation/index.jsx
@@ -5,7 +5,7 @@ import { Nav } from '../../design';
 import NavigationDropdown from './Dropdown';
 import NavigationEntry from './Entry';
 
-function Navigation({ entries, className, right }) {
+function Navigation({ entries, className = 'ml-auto', right = false }) {
     return (
         <Nav className={className}>
             {entries.map((entry) => {
@@ -29,9 +29,4 @@ Navigation.propTypes = {
     right: PropTypes.bool,
 };
 
-Navigation.defaultProps = {
-    className: 'ml-auto',
-    right: false,
-};
-
 export default Navigation;

2f659535f

Rechtes Menü (Mein Konto usw.) ist jetzt als 'right' markiert für korrekte Ausrichtung und Abstände.
2f659535f253a134974f220542362354397d2226
diff --git a/projectforge-webapp/src/components/base/navigation/index.jsx b/projectforge-webapp/src/components/base/navigation/index.jsx
index fd998a485..cc9c74a08 100644
--- a/projectforge-webapp/src/components/base/navigation/index.jsx
+++ b/projectforge-webapp/src/components/base/navigation/index.jsx
@@ -5,7 +5,7 @@ import { Nav } from '../../design';
 import NavigationDropdown from './Dropdown';
 import NavigationEntry from './Entry';
 
-function Navigation({ entries, className }) {
+function Navigation({ entries, className, right }) {
     return (
         <Nav className={className}>
             {entries.map((entry) => {
@@ -16,7 +16,8 @@ function Navigation({ entries, className }) {
                 } else {
                     Tag = NavigationEntry;
                 }
-                return <Tag key={entry.key || entry.id} {...entry} entryKey={entry.key} />;
+                // eslint-disable-next-line max-len
+                return <Tag key={entry.key || entry.id} {...entry} entryKey={entry.key} right={right} />;
             })}
         </Nav>
     );
@@ -25,10 +26,12 @@ function Navigation({ entries, className }) {
 Navigation.propTypes = {
     entries: PropTypes.arrayOf(menuItemPropType).isRequired,
     className: PropTypes.string,
+    right: PropTypes.bool,
 };
 
 Navigation.defaultProps = {
     className: 'ml-auto',
+    right: false,
 };
 
 export default Navigation;

36bfe1dbe

Neue React-Version, ESLint-Review von Fin.
36bfe1dbe1091ce01c65ef320ec3610e7d3f3900
diff --git a/projectforge-webapp/src/components/base/navigation/index.jsx b/projectforge-webapp/src/components/base/navigation/index.jsx
index 52a65be9a..fd998a485 100644
--- a/projectforge-webapp/src/components/base/navigation/index.jsx
+++ b/projectforge-webapp/src/components/base/navigation/index.jsx
@@ -16,7 +16,6 @@ function Navigation({ entries, className }) {
                 } else {
                     Tag = NavigationEntry;
                 }
-                // eslint-disable-next-line react/jsx-props-no-spreading
                 return <Tag key={entry.key || entry.id} {...entry} entryKey={entry.key} />;
             })}
         </Nav>

c23bfbdf5

ESLint-Review mit Fin erforderlich.
c23bfbdf5b54c9e3c7c3b2537375d9fb255a2730
diff --git a/projectforge-webapp/src/components/base/navigation/index.jsx b/projectforge-webapp/src/components/base/navigation/index.jsx
index c67ccd602..52a65be9a 100644
--- a/projectforge-webapp/src/components/base/navigation/index.jsx
+++ b/projectforge-webapp/src/components/base/navigation/index.jsx
@@ -16,7 +16,7 @@ function Navigation({ entries, className }) {
                 } else {
                     Tag = NavigationEntry;
                 }
-
+                // eslint-disable-next-line react/jsx-props-no-spreading
                 return <Tag key={entry.key || entry.id} {...entry} entryKey={entry.key} />;
             })}
         </Nav>