Sage100/src/context/DisplayModeContext.jsx
2026-01-20 11:06:52 +03:00

43 lines
No EOL
1.2 KiB
JavaScript

import React, { createContext, useContext, useState, useEffect } from 'react';
const DisplayModeContext = createContext();
export const DisplayModeProvider = ({ children }) => {
const [displayMode, setDisplayMode] = useState(() => {
return localStorage.getItem('displayMode') || 'comfortable';
});
const [isPdfPreviewVisible, setIsPdfPreviewVisible] = useState(() => {
return localStorage.getItem('pdfPreviewVisible') === 'true';
});
useEffect(() => {
localStorage.setItem('displayMode', displayMode);
}, [displayMode]);
useEffect(() => {
localStorage.setItem('pdfPreviewVisible', isPdfPreviewVisible);
}, [isPdfPreviewVisible]);
const toggleDisplayMode = () => {
setDisplayMode(prev => prev === 'compact' ? 'comfortable' : 'compact');
};
const togglePdfPreview = () => {
setIsPdfPreviewVisible(prev => !prev);
};
return (
<DisplayModeContext.Provider value={{
displayMode,
toggleDisplayMode,
isPdfPreviewVisible,
togglePdfPreview,
setIsPdfPreviewVisible
}}>
{children}
</DisplayModeContext.Provider>
);
};
export const useDisplayMode = () => useContext(DisplayModeContext);