import React from 'react'; import { Trigger, Typography } from '@arco-design/web-react'; import { SketchPicker } from 'react-color'; import { generate, getRgbStr } from '@arco-design/color'; import { useSelector, useDispatch } from 'react-redux'; import { ReducerState } from '../../redux'; import useLocale from '../../utils/useLocale'; import styles from './style/color-panel.module.less'; function ColorPanel() { const theme = document.querySelector('body').getAttribute('arco-theme') || 'light'; const settings = useSelector((state: ReducerState) => state.global.settings); const locale = useLocale(); const themeColor = settings.themeColor; const list = generate(themeColor, { list: true }); const dispatch = useDispatch(); return (
( { const newColor = color.hex; dispatch({ type: 'update-settings', payload: { settings: { ...settings, themeColor: newColor } }, }); const newList = generate(newColor, { list: true, dark: theme === 'dark' }); newList.forEach((l, index) => { const rgbStr = getRgbStr(l); document.body.style.setProperty(`--arcoblue-${index + 1}`, rgbStr); }); }} /> )} >
{themeColor}
    {list.map((item, index) => (
  • ))}
{locale['settings.color.tooltip']}
); } export default ColorPanel;