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