Skip to content

Commit 4845fa5

Browse files
committed
Fix issue #1: Add a toggle for dark mode
1 parent 2946bcb commit 4845fa5

File tree

4 files changed

+111
-1
lines changed

4 files changed

+111
-1
lines changed

src/.backup.App.css

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
#root {
2+
max-width: 1280px;
3+
margin: 0 auto;
4+
padding: 2rem;
5+
text-align: center;
6+
}
7+
8+
.logo {
9+
height: 6em;
10+
padding: 1.5em;
11+
will-change: filter;
12+
transition: filter 300ms;
13+
}
14+
.logo:hover {
15+
filter: drop-shadow(0 0 2em #646cffaa);
16+
}
17+
.logo.react:hover {
18+
filter: drop-shadow(0 0 2em #61dafbaa);
19+
}
20+
21+
@keyframes logo-spin {
22+
from {
23+
transform: rotate(0deg);
24+
}
25+
to {
26+
transform: rotate(360deg);
27+
}
28+
}
29+
30+
@media (prefers-reduced-motion: no-preference) {
31+
a:nth-of-type(2) .logo {
32+
animation: logo-spin infinite 20s linear;
33+
}
34+
}
35+
36+
.card {
37+
padding: 2em;
38+
}
39+
40+
.read-the-docs {
41+
color: #888;
42+
}

src/.backup.App.tsx

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
2+
import React from 'react'
3+
import './App.css'
4+
import PullRequestViewer from './PullRequestViewer'
5+
6+
function App() {
7+
return (
8+
<div className="App">
9+
<PullRequestViewer />
10+
</div>
11+
)
12+
}
13+
14+
export default App

src/App.css

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,17 @@
55
text-align: center;
66
}
77

8+
body {
9+
background-color: #ffffff;
10+
color: #213547;
11+
transition: background-color 0.3s, color 0.3s;
12+
}
13+
14+
body.dark-mode {
15+
background-color: #242424;
16+
color: #ffffff;
17+
}
18+
819
.logo {
920
height: 6em;
1021
padding: 1.5em;
@@ -40,3 +51,29 @@
4051
.read-the-docs {
4152
color: #888;
4253
}
54+
55+
.dark-mode-toggle {
56+
position: fixed;
57+
top: 20px;
58+
right: 20px;
59+
background-color: #646cff;
60+
color: white;
61+
border: none;
62+
padding: 10px 20px;
63+
border-radius: 5px;
64+
cursor: pointer;
65+
transition: background-color 0.3s;
66+
}
67+
68+
.dark-mode-toggle:hover {
69+
background-color: #535bf2;
70+
}
71+
72+
.dark-mode .dark-mode-toggle {
73+
background-color: #ffffff;
74+
color: #242424;
75+
}
76+
77+
.dark-mode .dark-mode-toggle:hover {
78+
background-color: #e6e6e6;
79+
}

src/App.tsx

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,28 @@
11

2-
import React from 'react'
2+
import React, { useState, useEffect } from 'react'
33
import './App.css'
44
import PullRequestViewer from './PullRequestViewer'
55

66
function App() {
7+
const [darkMode, setDarkMode] = useState(false)
8+
9+
useEffect(() => {
10+
if (darkMode) {
11+
document.body.classList.add('dark-mode')
12+
} else {
13+
document.body.classList.remove('dark-mode')
14+
}
15+
}, [darkMode])
16+
17+
const toggleDarkMode = () => {
18+
setDarkMode(!darkMode)
19+
}
20+
721
return (
822
<div className="App">
23+
<button className="dark-mode-toggle" onClick={toggleDarkMode}>
24+
{darkMode ? 'Light Mode' : 'Dark Mode'}
25+
</button>
926
<PullRequestViewer />
1027
</div>
1128
)

0 commit comments

Comments
 (0)