23 lines
473 B
TypeScript
23 lines
473 B
TypeScript
"use client";
|
|
|
|
import { useState } from "react";
|
|
import { useTheme as useNextTheme } from "next-themes";
|
|
|
|
export function useTheme() {
|
|
const { theme, resolvedTheme, setTheme } = useNextTheme();
|
|
const [mounted] = useState(true);
|
|
|
|
const currentTheme = resolvedTheme ?? theme ?? "light";
|
|
|
|
const toggleTheme = () => {
|
|
setTheme(currentTheme === "dark" ? "light" : "dark");
|
|
};
|
|
|
|
return {
|
|
theme: currentTheme,
|
|
setTheme,
|
|
toggleTheme,
|
|
mounted,
|
|
};
|
|
}
|