|
1 | 1 | import MarkdownPreview from '@uiw/react-markdown-preview';
|
2 | 2 | import data from '@uiw/codemirror-themes-all/README.md';
|
3 | 3 | import CodeMirror, { ReactCodeMirrorProps } from '@uiw/react-codemirror';
|
4 |
| -import { useEffect, useState } from 'react'; |
| 4 | +import { useState } from 'react'; |
5 | 5 | import * as themes from '@uiw/codemirror-themes-all';
|
6 | 6 | import { langs } from '@uiw/codemirror-extensions-langs';
|
7 |
| -import { PageWarpper } from '../'; |
8 | 7 | import styled from 'styled-components';
|
| 8 | +import { useTheme } from '../../../utils/useTheme'; |
| 9 | +import { PageWarpper } from '../'; |
9 | 10 |
|
10 | 11 | const ToolsWapper = styled.div`
|
11 | 12 | padding: 0 0 23px 0;
|
12 | 13 | `;
|
13 | 14 |
|
14 | 15 | export const ThemesAllDoc = () => {
|
15 |
| - const dark = document.documentElement.getAttribute('data-color-mode'); |
16 | 16 | const themesData: Record<string, Omit<ReactCodeMirrorProps['theme'], 'dark' | 'light'>> = {};
|
17 | 17 | Object.keys(themes)
|
18 | 18 | .filter((item) => typeof themes[item as keyof typeof themes] !== 'function')
|
19 | 19 | .forEach((item) => {
|
20 | 20 | themesData[item] = themes[item as keyof typeof themes];
|
21 | 21 | });
|
22 | 22 | const [selectTheme, setSelectTheme] = useState<keyof typeof themesData>();
|
23 |
| - const [theme, setTheme] = useState<ReactCodeMirrorProps['theme']>(dark === 'dark' ? 'dark' : 'light'); |
24 |
| - useEffect(() => { |
25 |
| - setTheme(document.documentElement.getAttribute('data-color-mode') === 'dark' ? 'dark' : 'light'); |
26 |
| - document.addEventListener('colorschemechange', (e) => { |
27 |
| - setTheme(e.detail.colorScheme as ReactCodeMirrorProps['theme']); |
28 |
| - }); |
29 |
| - }, []); |
| 23 | + const theme = useTheme(); |
30 | 24 | const themeCurrent = themesData[selectTheme!] ? themesData[selectTheme!] : theme;
|
31 | 25 | const changeHandle = (ev: React.ChangeEvent<HTMLSelectElement>) => {
|
32 | 26 | setSelectTheme(ev.target.value as keyof typeof themesData);
|
|
0 commit comments