import { CompoundButton, Link, Text } from '@fluentui/react-components'; import React, { FC } from 'react'; import banner from '../assets/images/banner.jpg'; import { Chat20Regular, ClipboardEdit20Regular, DataUsageSettings20Regular, DocumentSettings20Regular, MusicNote220Regular, Settings20Regular } from '@fluentui/react-icons'; import { useNavigate } from 'react-router'; import { observer } from 'mobx-react-lite'; import { RunButton } from '../components/RunButton'; import manifest from '../../../manifest.json'; import { BrowserOpenURL } from '../../wailsjs/runtime'; import { useTranslation } from 'react-i18next'; import { ConfigSelector } from '../components/ConfigSelector'; import commonStore from '../stores/commonStore'; import { ResetConfigsButton } from '../components/ResetConfigsButton'; import { AdvancedGeneralSettings } from './Settings'; import { NavCard } from '../types/home'; import { LazyImportComponent } from '../components/LazyImportComponent'; const clientNavCards: NavCard[] = [ { label: 'Chat', desc: 'Go to chat page', path: '/chat', icon: }, { label: 'Completion', desc: 'Writer, Translator, Role-playing', path: '/completion', icon: }, { label: 'Configs', desc: 'Manage your configs', path: '/configs', icon: }, { label: 'Models', desc: 'Manage models', path: '/models', icon: } ]; const webNavCards: NavCard[] = [ { label: 'Chat', desc: 'Go to chat page', path: '/chat', icon: }, { label: 'Completion', desc: 'Writer, Translator, Role-playing', path: '/completion', icon: }, { label: 'Composition', desc: '', path: '/composition', icon: }, { label: 'Settings', desc: '', path: '/settings', icon: } ]; const MarkdownRender = React.lazy(() => import('../components/MarkdownRender')); const Home: FC = observer(() => { const { t } = useTranslation(); const navigate = useNavigate(); const lang: string = commonStore.settings.language; const onClickNavCard = (path: string) => { navigate({ pathname: path }); }; return commonStore.platform === 'web' ? (
{webNavCards.map(({ label, path, icon, desc }, index) => ( onClickNavCard(path)}> {t(label)} ))}
{t('Version')}: {manifest.version} BrowserOpenURL('https://github.com/josStorer/RWKV-Runner')}>{t('Help')}
) : (
{t('Introduction')}
{lang in commonStore.introduction ? commonStore.introduction[lang] : commonStore.introduction['en']}
{clientNavCards.map(({ label, path, icon, desc }, index) => ( onClickNavCard(path)}> {t(label)} ))}
{t('Version')}: {manifest.version} BrowserOpenURL('https://github.com/josStorer/RWKV-Runner')}>{t('Help')}
); }); export default Home;