import React, { useState, useEffect } from 'react'; import PropTypes from 'prop-types'; import AppContext from './context/Context'; import { settings } from './config'; import toggleStylesheet from './helpers/toggleStylesheet'; import { getItemFromStore, setItemToStore, themeColors } from './helpers/utils'; import i18n from "i18next"; const Main = props => { const [isFluid, setIsFluid] = useState(getItemFromStore('isFluid', settings.isFluid)); const [isRTL, setIsRTL] = useState(getItemFromStore('isRTL', settings.isRTL)); const [isDark, setIsDark] = useState(getItemFromStore('isDark', settings.isDark)); const [isTopNav, setIsTopNav] = useState(getItemFromStore('isTopNav', settings.isTopNav)); const [isCombo, setIsCombo] = useState(getItemFromStore('isCombo', settings.isCombo)); const [isVertical, setIsVertical] = useState(getItemFromStore('isVertical', settings.isVertical)); const [isNavbarVerticalCollapsed, setIsNavbarVerticalCollapsed] = useState( getItemFromStore('isNavbarVerticalCollapsed', settings.isNavbarVerticalCollapsed) ); const [currency, setCurrency] = useState(settings.currency); const [showBurgerMenu, setShowBurgerMenu] = useState(settings.showBurgerMenu); const [isLoaded, setIsLoaded] = useState(false); const [isOpenSidePanel, setIsOpenSidePanel] = useState(false); const [navbarCollapsed, setNavbarCollapsed] = useState(false); const [navbarStyle, setNavbarStyle] = useState(getItemFromStore('navbarStyle', settings.navbarStyle)); const [language, setLanguage] = useState(getItemFromStore('myems_web_ui_language', settings.language)); const toggleModal = () => setIsOpenSidePanel(prevIsOpenSidePanel => !prevIsOpenSidePanel); const value = { isRTL, isDark, isCombo, isFluid, setIsRTL, isTopNav, currency, setIsDark, setIsCombo, setIsFluid, isVertical, toggleModal, setIsTopNav, navbarStyle, setCurrency, setIsVertical, showBurgerMenu, setNavbarStyle, language, setLanguage, isOpenSidePanel, navbarCollapsed, setShowBurgerMenu, setIsOpenSidePanel, setNavbarCollapsed, isNavbarVerticalCollapsed, setIsNavbarVerticalCollapsed }; const setStylesheetMode = mode => { setIsLoaded(false); setItemToStore(mode, value[mode]); toggleStylesheet({ isRTL, isDark }, () => setIsLoaded(true)); }; useEffect(() => { setStylesheetMode('isFluid'); // eslint-disable-next-line }, [isFluid]); useEffect(() => { setStylesheetMode('isRTL'); // eslint-disable-next-line }, [isRTL]); useEffect(() => { setStylesheetMode('isDark'); // eslint-disable-next-line }, [isDark]); useEffect(() => { setItemToStore('isNavbarVerticalCollapsed', isNavbarVerticalCollapsed); // eslint-disable-next-line }, [isNavbarVerticalCollapsed]); useEffect(() => { setItemToStore('isTopNav', isTopNav); // eslint-disable-next-line }, [isTopNav]); useEffect(() => { setItemToStore('isCombo', isCombo); // eslint-disable-next-line }, [isCombo]); useEffect(() => { setItemToStore('isVertical', isVertical); // eslint-disable-next-line }, [isVertical]); useEffect(() => { setItemToStore('navbarStyle', navbarStyle); // eslint-disable-next-line }, [navbarStyle]); useEffect(() => { setItemToStore('myems_web_ui_language', language); i18n.changeLanguage(language) // eslint-disable-next-line }, [language]); if (!isLoaded) { toggleStylesheet({ isRTL, isDark }, () => setIsLoaded(true)); return (
); } return