github.com/minio/console@v1.4.1/web-app/src/StyleHandler.tsx (about) 1 // This file is part of MinIO Console Server 2 // Copyright (c) 2021 MinIO, Inc. 3 // 4 // This program is free software: you can redistribute it and/or modify 5 // it under the terms of the GNU Affero General Public License as published by 6 // the Free Software Foundation, either version 3 of the License, or 7 // (at your option) any later version. 8 // 9 // This program is distributed in the hope that it will be useful, 10 // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 // GNU Affero General Public License for more details. 13 // 14 // You should have received a copy of the GNU Affero General Public License 15 // along with this program. If not, see <http://www.gnu.org/licenses/>. 16 17 import React, { Fragment } from "react"; 18 import { GlobalStyles, ThemeHandler } from "mds"; 19 import "react-virtualized/styles.css"; 20 21 import { generateOverrideTheme } from "./utils/stylesUtils"; 22 import "./index.css"; 23 import { useSelector } from "react-redux"; 24 import { AppState } from "./store"; 25 26 interface IStyleHandler { 27 children: React.ReactNode; 28 } 29 30 const StyleHandler = ({ children }: IStyleHandler) => { 31 const colorVariants = useSelector( 32 (state: AppState) => state.system.overrideStyles, 33 ); 34 const darkMode = useSelector((state: AppState) => state.system.darkMode); 35 36 let thm = undefined; 37 38 if (colorVariants) { 39 thm = generateOverrideTheme(colorVariants); 40 } 41 42 return ( 43 <Fragment> 44 <GlobalStyles /> 45 <ThemeHandler darkMode={darkMode} customTheme={thm}> 46 {children} 47 </ThemeHandler> 48 </Fragment> 49 ); 50 }; 51 52 export default StyleHandler;