diff --git a/react-advanced-tag1/src/App.tsx b/react-advanced-tag1/src/App.tsx
index 521f805..8742d80 100644
--- a/react-advanced-tag1/src/App.tsx
+++ b/react-advanced-tag1/src/App.tsx
@@ -7,18 +7,21 @@ import UsersPage from './routes/UsersPage'
import EffectExercisesPage from './routes/EffectExercisesPage'
import FormsPage from './routes/FormsPage'
import MemoCallbackPage from './routes/MemoCallbackPage'
+import ComponentWrapperPage from './routes/ComponentWrapperPage'
function App() {
return
-
- } />
- } />
- } />
- } />
- } />
-
-
+
+ } />
+ } />
+ } />
+ } />
+ } />
+ } />
+
+
+
}
export default App
diff --git a/react-advanced-tag1/src/common/components/ComponentWrapper/ComponentWrapper.css b/react-advanced-tag1/src/common/components/ComponentWrapper/ComponentWrapper.css
new file mode 100644
index 0000000..d847ffb
--- /dev/null
+++ b/react-advanced-tag1/src/common/components/ComponentWrapper/ComponentWrapper.css
@@ -0,0 +1,19 @@
+.component-wrapper {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ padding: 20px;
+ background-color: #1a1a1a;
+ border-radius: 8px;
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
+}
+
+.component-content {
+ width: 100%;
+ max-width: 800px;
+ background-color: #888;
+ border-radius: 8px;
+ padding: 20px;
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
+}
diff --git a/react-advanced-tag1/src/common/components/ComponentWrapper/ComponentWrapper.tsx b/react-advanced-tag1/src/common/components/ComponentWrapper/ComponentWrapper.tsx
new file mode 100644
index 0000000..e4f89f1
--- /dev/null
+++ b/react-advanced-tag1/src/common/components/ComponentWrapper/ComponentWrapper.tsx
@@ -0,0 +1,17 @@
+import './ComponentWrapper.css'
+
+interface ComponentWrapperProps {
+ title?: string;
+ children: React.ReactNode;
+}
+export default function ComponentWrapper({ children, title }: ComponentWrapperProps): React.ReactElement {
+ console.log("ComponentWrapper rendered");
+ return (
+
+ {title &&
{title}
}
+
+ {children}
+
+
+ );
+}
\ No newline at end of file
diff --git a/react-advanced-tag1/src/common/components/Header/Navigation.tsx b/react-advanced-tag1/src/common/components/Header/Navigation.tsx
index 5a7232c..4f78402 100644
--- a/react-advanced-tag1/src/common/components/Header/Navigation.tsx
+++ b/react-advanced-tag1/src/common/components/Header/Navigation.tsx
@@ -7,6 +7,7 @@ export default function Navigation () {
Effects
Forms
Memo und Callback
+ Component Wrapper
);
}
\ No newline at end of file
diff --git a/react-advanced-tag1/src/routes/ComponentWrapperPage.tsx b/react-advanced-tag1/src/routes/ComponentWrapperPage.tsx
new file mode 100644
index 0000000..eac6d2b
--- /dev/null
+++ b/react-advanced-tag1/src/routes/ComponentWrapperPage.tsx
@@ -0,0 +1,15 @@
+import ComponentWrapper from "../common/components/ComponentWrapper/ComponentWrapper";
+import EffectExercises from "../common/components/exercises/EffectExercises";
+
+export default function ComponentWrapperPage() {
+ return (
+
+
+ Hallo
+
+
+
+
+
+ );
+}
\ No newline at end of file