1
0
Fork 0
docsearch/packages/docsearch-react/src/useTheme.tsx
2026-07-16 14:59:00 -04:00

24 lines
673 B
TypeScript

import { useEffect } from 'react';
import type { DocSearchTheme } from './types';
export interface UseThemeProps {
theme?: DocSearchTheme;
}
export const useTheme = ({ theme }: UseThemeProps): void => {
useEffect(() => {
if (theme) {
const previousTheme = document.documentElement.dataset.theme;
if (theme !== previousTheme) {
document.documentElement.dataset.theme = theme;
return (): void => {
if (previousTheme === undefined)
delete document.documentElement.dataset.theme;
else document.documentElement.dataset.theme = previousTheme;
};
}
}
return undefined;
}, [theme]);
};