Skip to content

Commit ba9438a

Browse files
committed
[FEAT]: 환경에 따라 다크모드 진입
1 parent 7d4a2e0 commit ba9438a

9 files changed

+132
-6
lines changed

client/.pnp.cjs

+63
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

client/package.json

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
"dependencies": {
77
"@reduxjs/toolkit": "^1.8.6",
88
"react": "18.2.0",
9+
"react-cookie": "^7.1.4",
910
"react-dom": "18.2.0",
1011
"react-draggable": "4.4.5",
1112
"react-intersection-observer": "9.4.0",

client/src/components/SidebarButton.jsx

+20-6
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,30 @@
1-
import { useState } from "react";
1+
import { useState, useEffect } from "react";
22

33
export default function SidebarButton(props) {
44
const [daynightico, setdaynightico] = useState("dark_mode");
55
const [menustate, setmenustate] = useState("1");
66

7+
useEffect(() => {
8+
checker();
9+
}, []);
10+
711
function checker() {
8-
if (props.daynight % 2 === 1) {
9-
document.documentElement.setAttribute("data-theme", "dark");
10-
setdaynightico("light_mode");
12+
if (props.daynight === 1) {
13+
if (
14+
window.matchMedia &&
15+
window.matchMedia("(prefers-color-scheme: dark)").matches
16+
) {
17+
document.documentElement.setAttribute("data-theme", "dark");
18+
setdaynightico("light_mode");
19+
}
1120
} else {
12-
document.documentElement.setAttribute("data-theme", "light");
13-
setdaynightico("dark_mode");
21+
if (props.daynight % 2 === 1) {
22+
document.documentElement.setAttribute("data-theme", "dark");
23+
setdaynightico("light_mode");
24+
} else {
25+
document.documentElement.setAttribute("data-theme", "light");
26+
setdaynightico("dark_mode");
27+
}
1428
}
1529
}
1630

client/yarn.lock

+48
Original file line numberDiff line numberDiff line change
@@ -2472,6 +2472,13 @@ __metadata:
24722472
languageName: node
24732473
linkType: hard
24742474

2475+
"@types/cookie@npm:^0.6.0":
2476+
version: 0.6.0
2477+
resolution: "@types/cookie@npm:0.6.0"
2478+
checksum: 5edce7995775b0b196b142883e4d4f71fd93c294eaec973670f1fa2540b70ea7390408ed513ddefef5fcb12a578100c76596e8f2a714b0c2ae9f70ee773f4510
2479+
languageName: node
2480+
linkType: hard
2481+
24752482
"@types/eslint-scope@npm:^3.7.3":
24762483
version: 3.7.4
24772484
resolution: "@types/eslint-scope@npm:3.7.4"
@@ -2555,6 +2562,16 @@ __metadata:
25552562
languageName: node
25562563
linkType: hard
25572564

2565+
"@types/hoist-non-react-statics@npm:^3.3.5":
2566+
version: 3.3.5
2567+
resolution: "@types/hoist-non-react-statics@npm:3.3.5"
2568+
dependencies:
2569+
"@types/react": "*"
2570+
hoist-non-react-statics: ^3.3.0
2571+
checksum: b645b062a20cce6ab1245ada8274051d8e2e0b2ee5c6bd58215281d0ec6dae2f26631af4e2e7c8abe238cdcee73fcaededc429eef569e70908f82d0cc0ea31d7
2572+
languageName: node
2573+
linkType: hard
2574+
25582575
"@types/html-minifier-terser@npm:^6.0.0":
25592576
version: 6.1.0
25602577
resolution: "@types/html-minifier-terser@npm:6.1.0"
@@ -4329,6 +4346,13 @@ __metadata:
43294346
languageName: node
43304347
linkType: hard
43314348

4349+
"cookie@npm:^0.6.0":
4350+
version: 0.6.0
4351+
resolution: "cookie@npm:0.6.0"
4352+
checksum: f56a7d32a07db5458e79c726b77e3c2eff655c36792f2b6c58d351fb5f61531e5b1ab7f46987150136e366c65213cbe31729e02a3eaed630c3bf7334635fb410
4353+
languageName: node
4354+
linkType: hard
4355+
43324356
"core-js-compat@npm:^3.21.0, core-js-compat@npm:^3.22.1":
43334357
version: 3.24.0
43344358
resolution: "core-js-compat@npm:3.24.0"
@@ -9994,6 +10018,19 @@ __metadata:
999410018
languageName: node
999510019
linkType: hard
999610020

10021+
"react-cookie@npm:^7.1.4":
10022+
version: 7.1.4
10023+
resolution: "react-cookie@npm:7.1.4"
10024+
dependencies:
10025+
"@types/hoist-non-react-statics": ^3.3.5
10026+
hoist-non-react-statics: ^3.3.2
10027+
universal-cookie: ^7.0.0
10028+
peerDependencies:
10029+
react: ">= 16.3.0"
10030+
checksum: 274cb7ced460c17510a2b5236f0cb03717b533652c954027c5bf559588e85cabcb82b33845e720eccd3002cf46f132975fd05d0eff5bdea7c6fb9eb334635d7a
10031+
languageName: node
10032+
linkType: hard
10033+
999710034
"react-dev-utils@npm:^12.0.1":
999810035
version: 12.0.1
999910036
resolution: "react-dev-utils@npm:12.0.1"
@@ -11042,6 +11079,7 @@ __metadata:
1104211079
eslint-plugin-react: latest
1104311080
eslint-plugin-react-hooks: latest
1104411081
react: 18.2.0
11082+
react-cookie: ^7.1.4
1104511083
react-dom: 18.2.0
1104611084
react-draggable: 4.4.5
1104711085
react-intersection-observer: 9.4.0
@@ -11779,6 +11817,16 @@ __metadata:
1177911817
languageName: node
1178011818
linkType: hard
1178111819

11820+
"universal-cookie@npm:^7.0.0":
11821+
version: 7.1.4
11822+
resolution: "universal-cookie@npm:7.1.4"
11823+
dependencies:
11824+
"@types/cookie": ^0.6.0
11825+
cookie: ^0.6.0
11826+
checksum: 2b3459dcac8b0062b6a1853a826d67314bb2311e16d803b521be72ff554a9b6cfeb36499241949995910f87587722d928e6801b39c80b621dccfd62d5b3022d8
11827+
languageName: node
11828+
linkType: hard
11829+
1178211830
"universalify@npm:^0.1.2":
1178311831
version: 0.1.2
1178411832
resolution: "universalify@npm:0.1.2"

0 commit comments

Comments
 (0)