Skip to content

Commit 6b455df

Browse files
committed
refactor: rename "darkMode" to "theme" for clarity
1 parent 8e467cf commit 6b455df

File tree

4 files changed

+25
-30
lines changed

4 files changed

+25
-30
lines changed

src/components/databrowser/components/display/input/custom-editor.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import { useEffect, useRef } from "react"
2+
import { useTheme } from "@/dark-mode-context"
23
import { useTab } from "@/tab-provider"
34
import { Editor, useMonaco } from "@monaco-editor/react"
45

56
import { cn, isTest } from "@/lib/utils"
6-
import { useDarkMode } from "@/dark-mode-context"
77
import { CopyButton } from "@/components/databrowser/copy-button"
88

99
export const CustomEditor = ({
@@ -24,7 +24,7 @@ export const CustomEditor = ({
2424
const { active } = useTab()
2525
const monaco = useMonaco()
2626
const editorRef = useRef()
27-
const theme = useDarkMode()
27+
const theme = useTheme()
2828

2929
useEffect(() => {
3030
if (!active || !monaco || !editorRef.current) {

src/components/databrowser/index.tsx

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import "@/globals.css"
22

33
import { useEffect, useMemo, useRef } from "react"
4-
import { DarkModeProvider, useDarkMode, type DarkModeOption } from "@/dark-mode-context"
4+
import { DarkModeProvider, useTheme, type DarkModeOption } from "@/dark-mode-context"
55
import { RedisProvider, type RedisCredentials } from "@/redis-context"
66
import type { TabId } from "@/store"
77
import { DatabrowserProvider, useDatabrowserStore } from "@/store"
@@ -28,8 +28,8 @@ export const RedisBrowser = ({
2828
url,
2929
hideTabs,
3030
storage,
31-
darkMode = "light",
3231
onFullScreenClick,
32+
theme = "light",
3333
}: RedisCredentials & {
3434
hideTabs?: boolean
3535

@@ -54,19 +54,19 @@ export const RedisBrowser = ({
5454
storage?: RedisBrowserStorage
5555

5656
/**
57-
* Dark mode configuration.
57+
* Theme configuration (light or dark).
5858
*
5959
* @default "light"
6060
* @example
6161
* ```tsx
6262
* // Light mode (default)
63-
* <RedisBrowser darkMode="light" />
63+
* <RedisBrowser theme="light" />
6464
*
6565
* // Dark mode
66-
* <RedisBrowser darkMode="dark" />
66+
* <RedisBrowser theme="dark" />
6767
* ```
6868
*/
69-
darkMode?: DarkModeOption
69+
theme?: DarkModeOption
7070
}) => {
7171
const credentials = useMemo(() => ({ token, url }), [token, url])
7272
const rootRef = useRef<HTMLDivElement>(null)
@@ -78,7 +78,7 @@ export const RedisBrowser = ({
7878
return (
7979
<QueryClientProvider client={queryClient}>
8080
<RedisProvider redisCredentials={credentials}>
81-
<DarkModeProvider darkMode={darkMode}>
81+
<DarkModeProvider theme={theme}>
8282
<DatabrowserProvider storage={storage} rootRef={rootRef}>
8383
<TooltipProvider>
8484
<RedisBrowserRoot
@@ -103,8 +103,7 @@ const RedisBrowserRoot = ({
103103
rootRef: React.RefObject<HTMLDivElement>
104104
onFullScreenClick?: () => void
105105
}) => {
106-
const theme = useDarkMode()
107-
106+
const theme = useTheme()
108107

109108
useEffect(() => {
110109
portalWrapper.classList.add("text-zinc-700")

src/dark-mode-context.tsx

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,20 @@
1-
import { createContext, type PropsWithChildren, useContext } from "react"
1+
import { createContext, useContext, type PropsWithChildren } from "react"
22

33
export type DarkModeOption = "dark" | "light"
44

5-
type DarkModeContextProps = {
6-
darkMode: DarkModeOption
7-
}
8-
9-
const DarkModeContext = createContext<DarkModeContextProps | undefined>(undefined)
5+
const DarkModeContext = createContext<DarkModeOption | undefined>(undefined)
106

117
export const DarkModeProvider = ({
128
children,
13-
darkMode,
14-
}: PropsWithChildren<{ darkMode: DarkModeOption }>) => {
15-
return <DarkModeContext.Provider value={{ darkMode }}>{children}</DarkModeContext.Provider>
9+
theme,
10+
}: PropsWithChildren<{ theme: DarkModeOption }>) => {
11+
return <DarkModeContext.Provider value={theme}>{children}</DarkModeContext.Provider>
1612
}
1713

18-
export const useDarkMode = (): DarkModeOption => {
14+
export const useTheme = (): DarkModeOption => {
1915
const context = useContext(DarkModeContext)
2016
if (!context) {
2117
throw new Error("useDarkMode must be used within a DarkModeProvider")
2218
}
23-
return context.darkMode
19+
return context
2420
}

src/playground/index.tsx

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ const safeProcess = typeof process === "undefined" ? { env: {} as Record<string,
1111

1212
const App = () => {
1313
const { credentials } = useCredentialsStore()
14-
const [darkMode, setDarkMode] = useState<DarkModeOption>("light")
14+
const [theme, setTheme] = useState<DarkModeOption>("light")
1515

1616
useEffect(() => {
1717
if (safeProcess.env.UPSTASH_REDIS_REST_URL && safeProcess.env.UPSTASH_REDIS_REST_TOKEN) {
@@ -25,15 +25,15 @@ const App = () => {
2525
}, [safeProcess.env.UPSTASH_REDIS_REST_URL, safeProcess.env.UPSTASH_REDIS_REST_TOKEN])
2626

2727
const toggleDarkMode = () => {
28-
setDarkMode((prev) => (prev === "light" ? "dark" : "light"))
28+
setTheme((prev) => (prev === "light" ? "dark" : "light"))
2929
}
3030

3131
return (
3232
<main
3333
style={{
3434
position: "fixed",
3535
inset: 0,
36-
backgroundColor: darkMode === "dark" ? "#18181b" : "rgb(var(--color-zinc-50))",
36+
backgroundColor: theme === "dark" ? "#18181b" : "rgb(var(--color-zinc-50))",
3737
padding: "20px",
3838
transition: "background-color 0.2s",
3939
}}
@@ -56,17 +56,17 @@ const App = () => {
5656
style={{
5757
padding: "8px",
5858
border: "1px solid",
59-
borderColor: darkMode === "dark" ? "#3f3f46" : "#d4d4d8",
59+
borderColor: theme === "dark" ? "#3f3f46" : "#d4d4d8",
6060
borderRadius: "6px",
61-
backgroundColor: darkMode === "dark" ? "#27272a" : "#ffffff",
62-
color: darkMode === "dark" ? "#fafafa" : "#18181b",
61+
backgroundColor: theme === "dark" ? "#27272a" : "#ffffff",
62+
color: theme === "dark" ? "#fafafa" : "#18181b",
6363
cursor: "pointer",
6464
fontSize: "14px",
6565
fontWeight: "500",
6666
transition: "all 0.2s",
6767
}}
6868
>
69-
{darkMode === "dark" ? <IconMoon size={20} /> : <IconSun size={20} />}
69+
{theme === "dark" ? <IconMoon size={20} /> : <IconSun size={20} />}
7070
</button>
7171
</div>
7272
<div style={{ height: "800px" }}>
@@ -82,7 +82,7 @@ const App = () => {
8282
}}
8383
token={credentials.token}
8484
url={credentials.url}
85-
darkMode={darkMode}
85+
theme={theme}
8686
/>
8787
) : (
8888
<CredentialsForm />

0 commit comments

Comments
 (0)