From caac2bb49139ee28a40e94f4b2c93b45d03f7193 Mon Sep 17 00:00:00 2001 From: BJORN-VINTHER Date: Sun, 3 May 2026 23:12:12 +0200 Subject: [PATCH 1/3] solve exercise 1 --- .../exercises/exercise 1 - context/src/App.jsx | 17 ++++++++++------- .../src/components/ArticleCard.jsx | 7 +++++-- .../src/components/Heading.jsx | 6 +++++- .../src/components/Navbar.jsx | 9 +++++++-- .../src/components/Page.jsx | 6 +++--- .../src/contexts/ThemeContext.jsx | 5 +++++ 6 files changed, 35 insertions(+), 15 deletions(-) create mode 100644 week4/exercises/exercise 1 - context/src/contexts/ThemeContext.jsx diff --git a/week4/exercises/exercise 1 - context/src/App.jsx b/week4/exercises/exercise 1 - context/src/App.jsx index 5e58467..9b53a4f 100644 --- a/week4/exercises/exercise 1 - context/src/App.jsx +++ b/week4/exercises/exercise 1 - context/src/App.jsx @@ -1,6 +1,7 @@ import { useState } from 'react'; import Navbar from './components/Navbar.jsx'; import Page from './components/Page.jsx'; +import { ThemeContext } from './contexts/ThemeContext.jsx'; import './index.css'; export default function App() { @@ -11,12 +12,14 @@ export default function App() { } return ( -
- - -
+ +
+ + +
+
); } diff --git a/week4/exercises/exercise 1 - context/src/components/ArticleCard.jsx b/week4/exercises/exercise 1 - context/src/components/ArticleCard.jsx index cc090fa..9d9799d 100644 --- a/week4/exercises/exercise 1 - context/src/components/ArticleCard.jsx +++ b/week4/exercises/exercise 1 - context/src/components/ArticleCard.jsx @@ -1,6 +1,9 @@ +import { useContext } from 'react'; import Heading from './Heading.jsx'; +import { ThemeContext } from '../contexts/ThemeContext.jsx'; -export default function ArticleCard({ article, isDark }) { +export default function ArticleCard({ article }) { + const { isDark } = useContext(ThemeContext); const accent = isDark ? '#e94560' : '#4f46e5'; return ( @@ -14,7 +17,7 @@ export default function ArticleCard({ article, isDark }) { }} >
- {article.title} + {article.title} {article.tag}

{article.summary}

diff --git a/week4/exercises/exercise 1 - context/src/components/Heading.jsx b/week4/exercises/exercise 1 - context/src/components/Heading.jsx index 04de4e4..065df03 100644 --- a/week4/exercises/exercise 1 - context/src/components/Heading.jsx +++ b/week4/exercises/exercise 1 - context/src/components/Heading.jsx @@ -1,9 +1,13 @@ +import { useContext } from 'react'; +import { ThemeContext } from '../contexts/ThemeContext.jsx'; + const colors = { light: { color: '#111111' }, dark: { color: '#ffffff' }, }; -export default function Heading({ level = 2, isDark, children }) { +export default function Heading({ level = 2, children }) { + const { isDark } = useContext(ThemeContext); const Tag = `h${level}`; return ( diff --git a/week4/exercises/exercise 1 - context/src/components/Navbar.jsx b/week4/exercises/exercise 1 - context/src/components/Navbar.jsx index 6fff7f4..6b0c3de 100644 --- a/week4/exercises/exercise 1 - context/src/components/Navbar.jsx +++ b/week4/exercises/exercise 1 - context/src/components/Navbar.jsx @@ -1,4 +1,9 @@ -export default function Navbar({ isDark, onToggle }) { +import { useContext } from 'react'; +import { ThemeContext } from '../contexts/ThemeContext.jsx'; + +export default function Navbar() { + const { isDark, toggleTheme } = useContext(ThemeContext); + return (