* 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>
42 lines
1.1 KiB
TypeScript
42 lines
1.1 KiB
TypeScript
import React from 'react'
|
|
import { useAtomValue, useSetAtom } from 'jotai'
|
|
import Image from 'next/image'
|
|
import {
|
|
MainViewState,
|
|
getMainViewStateAtom,
|
|
setMainViewStateAtom,
|
|
} from '@helpers/atoms/MainView.atom'
|
|
|
|
type Props = {
|
|
title: string
|
|
viewState: MainViewState
|
|
iconName: string
|
|
}
|
|
|
|
const SidebarMenuItem: React.FC<Props> = ({ title, viewState, iconName }) => {
|
|
const currentState = useAtomValue(getMainViewStateAtom)
|
|
const setMainViewState = useSetAtom(setMainViewStateAtom)
|
|
|
|
let className =
|
|
'text-gray-600 hover:text-indigo-600 hover:bg-gray-50 group flex gap-x-3 rounded-md text-base py-2 px-3 w-full'
|
|
if (currentState == viewState) {
|
|
className =
|
|
'bg-gray-100 text-indigo-600 group flex gap-x-3 rounded-md text-base py-2 px-3 w-full'
|
|
}
|
|
|
|
const onClick = () => {
|
|
setMainViewState(viewState)
|
|
}
|
|
|
|
return (
|
|
<li key={title}>
|
|
<button onClick={onClick} className={className}>
|
|
<Image src={`icons/${iconName}.svg`} width={24} height={24} alt="" />
|
|
<span className="truncate">{title}</span>
|
|
</button>
|
|
</li>
|
|
)
|
|
}
|
|
|
|
export default SidebarMenuItem
|