* feat: adding create bot functionality Signed-off-by: James <james@jan.ai> * update the temperature progress bar Signed-off-by: James <james@jan.ai> * chore: remove tgz Signed-off-by: James <james@jan.ai> * update core dependency Signed-off-by: James <james@jan.ai> * fix e2e test Signed-off-by: James <james@jan.ai> --------- Signed-off-by: James <james@jan.ai> Co-authored-by: James <james@jan.ai>
67 lines
1.7 KiB
TypeScript
67 lines
1.7 KiB
TypeScript
import { atom } from 'jotai'
|
|
import { setActiveConvoIdAtom } from './Conversation.atom'
|
|
import { systemBarVisibilityAtom } from './SystemBar.atom'
|
|
import {
|
|
rightSideBarExpandStateAtom,
|
|
showRightSideBarToggleAtom,
|
|
} from './LeftSideBarExpand.atom'
|
|
|
|
export enum MainViewState {
|
|
Welcome,
|
|
CreateBot,
|
|
ExploreModel,
|
|
MyModel,
|
|
ResourceMonitor,
|
|
Setting,
|
|
Conversation,
|
|
|
|
/**
|
|
* When user wants to create new conversation but haven't selected a model yet.
|
|
*/
|
|
ConversationEmptyModel,
|
|
|
|
BotInfo,
|
|
}
|
|
|
|
/**
|
|
* Stores the current main view state. Default is Welcome.
|
|
*/
|
|
const currentMainViewStateAtom = atom<MainViewState>(MainViewState.Welcome)
|
|
|
|
/**
|
|
* Getter for current main view state.
|
|
*/
|
|
export const getMainViewStateAtom = atom((get) => get(currentMainViewStateAtom))
|
|
|
|
/**
|
|
* Setter for current main view state.
|
|
*/
|
|
export const setMainViewStateAtom = atom(
|
|
null,
|
|
(get, set, state: MainViewState) => {
|
|
// return if the state is already set
|
|
if (get(getMainViewStateAtom) === state) return
|
|
|
|
if (state !== MainViewState.Conversation) {
|
|
// clear active conversation id if main view state is not Conversation
|
|
set(setActiveConvoIdAtom, undefined)
|
|
}
|
|
|
|
if (state in [MainViewState.Welcome, MainViewState.CreateBot]) {
|
|
set(showRightSideBarToggleAtom, false)
|
|
set(rightSideBarExpandStateAtom, false)
|
|
} else {
|
|
set(showRightSideBarToggleAtom, true)
|
|
}
|
|
|
|
const showSystemBar =
|
|
state !== MainViewState.Conversation &&
|
|
state !== MainViewState.ConversationEmptyModel
|
|
|
|
// show system bar if state is not Conversation nor ConversationEmptyModel
|
|
set(systemBarVisibilityAtom, showSystemBar)
|
|
|
|
set(currentMainViewStateAtom, state)
|
|
}
|
|
)
|