import ReactDOM from 'react-dom'; import { AlertTriangle, Trash2 } from 'lucide-react'; import type { TFunction } from 'i18next'; import { Button } from '../../../ui/button'; import ProjectCreationWizard from '../../../ProjectCreationWizard'; import Settings from '../../../Settings'; import VersionUpgradeModal from '../../../modals/VersionUpgradeModal'; import type { Project } from '../../../../types/app'; import type { ReleaseInfo } from '../../../../types/sharedTypes'; import type { DeleteProjectConfirmation, SessionDeleteConfirmation } from '../../types/types'; type SidebarModalsProps = { projects: Project[]; showSettings: boolean; settingsInitialTab: string; onCloseSettings: () => void; showNewProject: boolean; onCloseNewProject: () => void; onProjectCreated: () => void; deleteConfirmation: DeleteProjectConfirmation | null; onCancelDeleteProject: () => void; onConfirmDeleteProject: () => void; sessionDeleteConfirmation: SessionDeleteConfirmation | null; onCancelDeleteSession: () => void; onConfirmDeleteSession: () => void; showVersionModal: boolean; onCloseVersionModal: () => void; releaseInfo: ReleaseInfo | null; currentVersion: string; latestVersion: string | null; t: TFunction; }; export default function SidebarModals({ projects, showSettings, settingsInitialTab, onCloseSettings, showNewProject, onCloseNewProject, onProjectCreated, deleteConfirmation, onCancelDeleteProject, onConfirmDeleteProject, sessionDeleteConfirmation, onCancelDeleteSession, onConfirmDeleteSession, showVersionModal, onCloseVersionModal, releaseInfo, currentVersion, latestVersion, t, }: SidebarModalsProps) { return ( <> {showNewProject && ReactDOM.createPortal( , document.body, )} {deleteConfirmation && ReactDOM.createPortal(

{t('deleteConfirmation.deleteProject')}

{t('deleteConfirmation.confirmDelete')}{' '} {deleteConfirmation.project.displayName || deleteConfirmation.project.name} ?

{deleteConfirmation.sessionCount > 0 && (

{t('deleteConfirmation.sessionCount', { count: deleteConfirmation.sessionCount })}

{t('deleteConfirmation.allConversationsDeleted')}

)}

{t('deleteConfirmation.cannotUndo')}

, document.body, )} {sessionDeleteConfirmation && ReactDOM.createPortal(

{t('deleteConfirmation.deleteSession')}

{t('deleteConfirmation.confirmDelete')}{' '} {sessionDeleteConfirmation.sessionTitle || t('sessions.unnamed')} ?

{t('deleteConfirmation.cannotUndo')}

, document.body, )} ); }