import { BgColorsOutlined, SmileOutlined } from '@ant-design/icons'; import { CompactTheme, DarkTheme } from 'antd-token-previewer/es/icons'; // import { Motion } from 'antd-token-previewer/es/icons'; import { FormattedMessage, Link, useLocation } from 'dumi'; import React from 'react'; import { useTheme } from 'antd-style'; import { FloatButton } from 'antd'; import { getLocalizedPathname, isZhCN } from '../../utils'; import ThemeIcon from './ThemeIcon'; export type ThemeName = 'light' | 'dark' | 'compact' | 'motion-off' | 'happy-work'; export type ThemeSwitchProps = { value?: ThemeName[]; onChange: (value: ThemeName[]) => void; }; const ThemeSwitch: React.FC = (props) => { const { value = ['light'], onChange } = props; const token = useTheme(); const { pathname, search } = useLocation(); // const isMotionOff = value.includes('motion-off'); const isHappyWork = value.includes('happy-work'); return ( } aria-label="Theme Switcher" badge={{ dot: true }} style={{ zIndex: 1010 }} > } tooltip={} /> } type={value.includes('dark') ? 'primary' : 'default'} onClick={() => { if (value.includes('dark')) { onChange(value.filter((theme) => theme !== 'dark')); } else { onChange([...value, 'dark']); } }} tooltip={} /> } type={value.includes('compact') ? 'primary' : 'default'} onClick={() => { if (value.includes('compact')) { onChange(value.filter((theme) => theme !== 'compact')); } else { onChange([...value, 'compact']); } }} tooltip={} /> {/* Too many float button. Hide motion one */} {/* } type={!isMotionOff ? 'primary' : 'default'} onClick={() => { if (isMotionOff) { onChange(value.filter((theme) => theme !== 'motion-off')); } else { onChange([...value, 'motion-off']); } }} tooltip={ } /> */} } type={isHappyWork ? 'primary' : 'default'} onClick={() => { if (isHappyWork) { onChange(value.filter((theme) => theme !== 'happy-work')); } else { onChange([...value, 'happy-work']); } }} tooltip={ } /> ); }; export default ThemeSwitch;