/
Theme.tsx
44 lines (40 loc) · 1.01 KB
/
Theme.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import React, { useEffect } from 'react';
import { useSelector } from 'react-redux';
import { selectOptions } from '../store/options/selectors';
export interface ThemeProps {
children: any;
}
export default function Theme({ children }: ThemeProps) {
const options = useSelector(selectOptions);
useEffect(() => {
switch (options.themes.mts) {
case 'cerulean':
case 'cosmo':
case 'cyborg':
case 'darkly':
case 'flatly':
case 'journal':
case 'litera':
case 'lumen':
case 'lux':
case 'materia':
case 'minty':
case 'pulse':
case 'sandstone':
case 'simplex':
case 'sketchy':
case 'slate':
case 'solar':
case 'spacelab':
case 'superhero':
case 'united':
case 'yeti':
require(`bootswatch/dist/${options.themes.mts}/bootstrap.min.css`);
break;
default:
require('bootstrap/dist/css/bootstrap.css');
break;
}
}, [options.themes.mts]);
return <>{children}</>;
}