RWKV-Runner/frontend/src/pages/Chat.tsx

50 lines
1.5 KiB
TypeScript
Raw Normal View History

2023-05-05 15:23:34 +00:00
import React, {FC} from 'react';
2023-05-18 12:48:53 +00:00
import {useTranslation} from 'react-i18next';
2023-05-19 02:08:28 +00:00
import {RunButton} from '../components/RunButton';
import {Divider, PresenceBadge, Text} from '@fluentui/react-components';
import commonStore, {ModelStatus} from '../stores/commonStore';
import {observer} from 'mobx-react-lite';
import {PresenceBadgeStatus} from '@fluentui/react-badge';
import {ConfigSelector} from '../components/ConfigSelector';
2023-05-05 15:23:34 +00:00
2023-05-19 02:08:28 +00:00
const ChatPanel: FC = () => {
return (
<div></div>
);
};
const statusText = {
[ModelStatus.Offline]: 'Offline',
[ModelStatus.Starting]: 'Starting',
[ModelStatus.Loading]: 'Loading',
[ModelStatus.Working]: 'Working'
};
const badgeStatus: { [modelStatus: number]: PresenceBadgeStatus } = {
[ModelStatus.Offline]: 'unknown',
[ModelStatus.Starting]: 'away',
[ModelStatus.Loading]: 'away',
[ModelStatus.Working]: 'available'
};
export const Chat: FC = observer(() => {
2023-05-18 12:48:53 +00:00
const {t} = useTranslation();
2023-05-05 15:23:34 +00:00
return (
2023-05-19 02:08:28 +00:00
<div className="flex flex-col gap-1 p-2 h-full overflow-hidden">
<div className="flex justify-between items-center">
<div className="flex items-center gap-2">
<PresenceBadge status={badgeStatus[commonStore.modelStatus]}/>
<Text size={100}>{t('Model Status') + ': ' + t(statusText[commonStore.modelStatus])}</Text>
</div>
<div className="flex items-center gap-2">
<ConfigSelector size="small"/>
<RunButton iconMode/>
</div>
2023-05-17 15:27:52 +00:00
</div>
2023-05-19 02:08:28 +00:00
<Divider style={{flexGrow: 0}}/>
<ChatPanel/>
</div>
2023-05-05 15:23:34 +00:00
);
2023-05-19 02:08:28 +00:00
});