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;