diff --git a/components/index.tsx b/components/index.tsx index b400adc..d425e86 100644 --- a/components/index.tsx +++ b/components/index.tsx @@ -1,5 +1,6 @@ 'use client'; +import { useState, useEffect } from "react"; import { useRecoilState } from "recoil"; import Background from "./background"; import Search from "./search/search"; @@ -8,16 +9,33 @@ import Time from "./time"; export default function Homepage() { const [isFocus, setFocus] = useRecoilState(bgFocusState); + const [colorScheme, setColorScheme] = useState(''); + + useEffect(() => { + const colorSchemeQueryList = window.matchMedia('(prefers-color-scheme: dark)'); + setColorScheme(colorSchemeQueryList.matches ? 'dark' : 'light'); + + const handleChange = () => { + setColorScheme(colorSchemeQueryList.matches ? 'dark' : 'light'); + }; + + colorSchemeQueryList.addListener(handleChange); + + return () => { + colorSchemeQueryList.removeListener(handleChange); + }; + }, []); + return (
-
); } diff --git a/components/search/search.tsx b/components/search/search.tsx index 6643cff..d41ff84 100644 --- a/components/search/search.tsx +++ b/components/search/search.tsx @@ -16,7 +16,7 @@ export default function Search(props: {
{ const timer = setInterval(() => { @@ -22,7 +25,7 @@ export default function Time(props: { const minutes = currentTime.getMinutes().toString().padStart(2, "0"); const seconds = currentTime.getSeconds().toString().padStart(2, "0"); - if (props.showSecond) { + if (settings.timeShowSecond) { return `${hours}:${minutes}:${seconds}`; } else { return `${hours}:${minutes}`; @@ -31,11 +34,18 @@ export default function Time(props: { return (
- {formatTime()} + {formatTime()}{" "} + + {format.dateTime(currentTime, { + year: "numeric", + month: "short", + day: "numeric" + })} +
); -}; +}