* fix: update new api from cortex to support 0.5.0 Signed-off-by: James <namnh0122@gmail.com> * fix stop button for streaming Signed-off-by: James <namnh0122@gmail.com> * fix stop inference for nonstreaming Signed-off-by: James <namnh0122@gmail.com> * chore: remove umami prevent tracking call to vercel Signed-off-by: James <namnh0122@gmail.com> * add warning modal when running more than 2 model concurrently Signed-off-by: James <namnh0122@gmail.com> * fix: skip summarize if abort Signed-off-by: James <namnh0122@gmail.com> * 0.5.0-3 * add inference error popup Signed-off-by: James <namnh0122@gmail.com> * add back import local model Signed-off-by: James <namnh0122@gmail.com> * fix: max token issue (#3225) Signed-off-by: James <namnh0122@gmail.com> * format status Signed-off-by: James <namnh0122@gmail.com> * fix migration missing instructions Signed-off-by: James <namnh0122@gmail.com> * fix: wait for cortex process overlay should be on top (#3224) * fix: wait for cortex process overlay should be on top * chore: update cortex.js * Cortex 0.5.0-5 * add import model to my model screen Signed-off-by: James <namnh0122@gmail.com> * fix: should migrate symlink models (#3226) * fix import on windows (#3229) Signed-off-by: James <namnh0122@gmail.com> * fix yarn lint Signed-off-by: James <namnh0122@gmail.com> * fix: clean up port before start jan (#3232) Signed-off-by: James <namnh0122@gmail.com> --------- Signed-off-by: James <namnh0122@gmail.com> Co-authored-by: Van Pham <64197333+Van-QA@users.noreply.github.com> Co-authored-by: Louis <louis@jan.ai>
102 lines
3.6 KiB
TypeScript
102 lines
3.6 KiB
TypeScript
'use client'
|
|
|
|
import { useEffect } from 'react'
|
|
|
|
import { motion as m } from 'framer-motion'
|
|
|
|
import { useAtomValue, useSetAtom } from 'jotai'
|
|
|
|
import { twMerge } from 'tailwind-merge'
|
|
|
|
import BottomPanel from '@/containers/Layout/BottomPanel'
|
|
import RibbonPanel from '@/containers/Layout/RibbonPanel'
|
|
|
|
import TopPanel from '@/containers/Layout/TopPanel'
|
|
|
|
import { getImportModelStageAtom } from '@/hooks/useImportModel'
|
|
|
|
import DownloadLocalModelModal from '@/screens/HubScreen2/components/DownloadLocalModelModal'
|
|
import InferenceErrorModal from '@/screens/HubScreen2/components/InferenceErrorModal'
|
|
import SetUpApiKeyModal from '@/screens/HubScreen2/components/SetUpApiKeyModal'
|
|
import SetUpRemoteModelModal from '@/screens/HubScreen2/components/SetUpRemoteModelModal'
|
|
import WarningMultipleModelModal from '@/screens/HubScreen2/components/WarningMultipleModelModal'
|
|
import { SUCCESS_SET_NEW_DESTINATION } from '@/screens/Settings/Advanced/DataFolder'
|
|
import CancelModelImportModal from '@/screens/Settings/CancelModelImportModal'
|
|
import ChooseWhatToImportModal from '@/screens/Settings/ChooseWhatToImportModal'
|
|
import EditModelInfoModal from '@/screens/Settings/EditModelInfoModal'
|
|
import HuggingFaceRepoDetailModal from '@/screens/Settings/HuggingFaceRepoDetailModal'
|
|
import ImportModelOptionModal from '@/screens/Settings/ImportModelOptionModal'
|
|
import ImportingModelModal from '@/screens/Settings/ImportingModelModal'
|
|
import SelectingModelModal from '@/screens/Settings/SelectingModelModal'
|
|
|
|
import LoadingModal from '../LoadingModal'
|
|
|
|
import MainViewContainer from '../MainViewContainer'
|
|
|
|
import WaitingForCortexModal from '../WaitingCortexModal'
|
|
|
|
import InstallingExtensionModal from './BottomPanel/InstallingExtension/InstallingExtensionModal'
|
|
|
|
import { MainViewState, mainViewStateAtom } from '@/helpers/atoms/App.atom'
|
|
import { reduceTransparentAtom } from '@/helpers/atoms/Setting.atom'
|
|
|
|
const BaseLayout = () => {
|
|
const setMainViewState = useSetAtom(mainViewStateAtom)
|
|
const importModelStage = useAtomValue(getImportModelStageAtom)
|
|
const reduceTransparent = useAtomValue(reduceTransparentAtom)
|
|
|
|
useEffect(() => {
|
|
if (localStorage.getItem(SUCCESS_SET_NEW_DESTINATION) === 'true') {
|
|
setMainViewState(MainViewState.Settings)
|
|
}
|
|
}, [setMainViewState])
|
|
|
|
return (
|
|
<div
|
|
className={twMerge(
|
|
'h-screen text-sm',
|
|
reduceTransparent
|
|
? 'bg-[hsla(var(--app-bg))]'
|
|
: 'bg-[hsla(var(--app-transparent))]'
|
|
)}
|
|
>
|
|
<TopPanel />
|
|
<div className="relative top-9 flex h-[calc(100vh-(36px+36px))] w-screen">
|
|
<RibbonPanel />
|
|
<m.div
|
|
initial={{ opacity: 0, y: -8 }}
|
|
className="h-full w-full"
|
|
animate={{
|
|
opacity: 1,
|
|
y: 0,
|
|
transition: {
|
|
duration: 0.3,
|
|
},
|
|
}}
|
|
>
|
|
<MainViewContainer />
|
|
</m.div>
|
|
<WaitingForCortexModal />
|
|
<LoadingModal />
|
|
{importModelStage === 'SELECTING_MODEL' && <SelectingModelModal />}
|
|
{importModelStage === 'MODEL_SELECTED' && <ImportModelOptionModal />}
|
|
{importModelStage === 'IMPORTING_MODEL' && <ImportingModelModal />}
|
|
{importModelStage === 'EDIT_MODEL_INFO' && <EditModelInfoModal />}
|
|
{importModelStage === 'CONFIRM_CANCEL' && <CancelModelImportModal />}
|
|
|
|
<InferenceErrorModal />
|
|
<WarningMultipleModelModal />
|
|
<DownloadLocalModelModal />
|
|
<SetUpRemoteModelModal />
|
|
<SetUpApiKeyModal />
|
|
<ChooseWhatToImportModal />
|
|
<InstallingExtensionModal />
|
|
<HuggingFaceRepoDetailModal />
|
|
</div>
|
|
<BottomPanel />
|
|
</div>
|
|
)
|
|
}
|
|
|
|
export default BaseLayout
|