Files
HospitalOborniki/resources/js/hooks/use-font-size.tsx
2025-05-10 16:52:45 +02:00

28 lines
803 B
TypeScript

import { useEffect, useState } from 'react';
type FontSize = 'normal' | 'large' | 'larger';
export function useFontSize() {
const [fontSize, setFontSize] = useState<FontSize>(() => {
if (typeof window !== 'undefined') {
const saved = localStorage.getItem('font-size');
if (saved && ['normal', 'large', 'larger'].includes(saved)) {
return saved as FontSize;
}
}
return 'normal';
});
useEffect(() => {
const root = window.document.documentElement;
root.classList.remove('text-normal', 'text-large', 'text-larger');
root.classList.add(`text-${fontSize}`);
localStorage.setItem('font-size', fontSize);
}, [fontSize]);
return {
fontSize,
setFontSize,
};
}