import { useTranslate } from '@/hooks/common-hooks'; import { DownOutlined, GithubOutlined } from '@ant-design/icons'; import { Dropdown, MenuProps, Space } from 'antd'; import camelCase from 'lodash/camelCase'; import React from 'react'; import User from '../user'; import { useTheme } from '@/components/theme-provider'; import { LanguageList, LanguageMap } from '@/constants/common'; import { useChangeLanguage } from '@/hooks/logic-hooks'; import { useFetchUserInfo } from '@/hooks/user-setting-hooks'; import { CircleHelp, MoonIcon, SunIcon } from 'lucide-react'; import styled from './index.less'; const Circle = ({ children, ...restProps }: React.PropsWithChildren) => { return (
{children}
); }; const handleGithubCLick = () => { window.open('https://github.com/infiniflow/ragflow', 'target'); }; const handleDocHelpCLick = () => { window.open('https://ragflow.io/docs/dev/category/guides', 'target'); }; const RightToolBar = () => { const { t } = useTranslate('common'); const changeLanguage = useChangeLanguage(); const { setTheme, theme } = useTheme(); const { data: { language = 'English' }, } = useFetchUserInfo(); const handleItemClick: MenuProps['onClick'] = ({ key }) => { changeLanguage(key); }; const items: MenuProps['items'] = LanguageList.map((x) => ({ key: x, label: {LanguageMap[x as keyof typeof LanguageMap]}, })).reduce((pre, cur) => { return [...pre!, { type: 'divider' }, cur]; }, []); const onMoonClick = React.useCallback(() => { setTheme('light'); }, [setTheme]); const onSunClick = React.useCallback(() => { setTheme('dark'); }, [setTheme]); return (
{t(camelCase(language))} {theme === 'dark' ? ( ) : ( )}
); }; export default RightToolBar;