import type { FC } from 'react'; import React from 'react'; import { usePrefersColor } from 'dumi/theme'; import './Dark.less'; interface darkProps { darkSwitch: boolean; isSideMenu: boolean; onDarkSwitchClick?: (ev) => void; }; const Dark: FC = ({ darkSwitch, onDarkSwitchClick, isSideMenu }) => { const allState = ['dark', 'light', 'auto']; const [color, setColor] = usePrefersColor(); const prefersColor = color; const sunSvg = ; const moonSvg = ; const autoSvg = ; const list = allState.filter(state => state !== prefersColor); const changeColor = (ev, toColor) => { if (!isSideMenu && onDarkSwitchClick) { onDarkSwitchClick(ev); } if (toColor === prefersColor) return; setColor(toColor); }; const getSvg = (baseColor) => { switch (baseColor) { case 'dark': return ( ); case 'light': return ( ); case 'auto': return ( ) default: } }; return (
{isSideMenu ? ( allState.map(item => ( getSvg(item) )) ) : getSvg(prefersColor)}
{!isSideMenu && darkSwitch && (
{ list.map(item => ( getSvg(item) )) }
)}
) }; export default Dark;