* feat: adding create bot functionality Signed-off-by: James <james@jan.ai> * update the temperature progress bar Signed-off-by: James <james@jan.ai> * WIP baselayout * Mapping plugins with available preferences * Added loader component * WIP working another screen * Cleanup types and avoid import one by one * Prepare bottom bar * Add css variables colors to enable user select the accent * Enable change accent color * Seperate css variable * Fix conflict * Add blank state of my model empty * Restyle explore models page * Enable user config left sidebar * Restyle my models page * WIP styling chat page * Restyling chat message * Fix conflict * Adde form preferences setting plugins * Fixed form bot info * Sidebar bot chat * Showing rightbar for both setting when user created bot * Fix style bot info * Using overflow auto intead of scroll * Remove script built UI from root package * Fix missig import * Resolve error linter * fix e2e tests Signed-off-by: James <james@jan.ai> --------- Signed-off-by: James <james@jan.ai> Co-authored-by: James <james@jan.ai>
47 lines
1.7 KiB
TypeScript
47 lines
1.7 KiB
TypeScript
import React from 'react'
|
|
import SystemItem from '@containers/SystemItem'
|
|
import { useAtomValue } from 'jotai'
|
|
import useGetAppVersion from '@hooks/useGetAppVersion'
|
|
import useGetSystemResources from '@hooks/useGetSystemResources'
|
|
import { modelDownloadStateAtom } from '@helpers/atoms/DownloadState.atom'
|
|
import { formatDownloadPercentage } from '@utils/converter'
|
|
import { activeAssistantModelAtom } from '@helpers/atoms/Model.atom'
|
|
|
|
const BottomBar = () => {
|
|
const activeModel = useAtomValue(activeAssistantModelAtom)
|
|
const { version } = useGetAppVersion()
|
|
const { ram, cpu } = useGetSystemResources()
|
|
const modelDownloadStates = useAtomValue(modelDownloadStateAtom)
|
|
const getCurrentYear = new Date().getFullYear()
|
|
|
|
const downloadStates: DownloadState[] = []
|
|
for (const [, value] of Object.entries(modelDownloadStates)) {
|
|
downloadStates.push(value)
|
|
}
|
|
|
|
return (
|
|
<div className="fixed bottom-0 left-0 z-20 flex h-8 w-full items-center justify-between border-t border-border bg-background/50 px-4">
|
|
<div className="flex gap-x-2">
|
|
<SystemItem name="Active model:" value={activeModel?.name || '-'} />
|
|
{downloadStates.length > 0 && (
|
|
<SystemItem
|
|
name="Downloading:"
|
|
value={`${downloadStates[0].fileName} - ${formatDownloadPercentage(
|
|
downloadStates[0].percent
|
|
)}`}
|
|
/>
|
|
)}
|
|
</div>
|
|
<div className="flex gap-x-2">
|
|
<SystemItem name="CPU:" value={`${cpu}%`} />
|
|
<SystemItem name="Mem:" value={`${ram}%`} />
|
|
<p className="text-xs text-muted-foreground">
|
|
©{getCurrentYear} Jan AI Pte Ltd. v{version}
|
|
</p>
|
|
</div>
|
|
</div>
|
|
)
|
|
}
|
|
|
|
export default BottomBar
|