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(
{t('deleteConfirmation.confirmDelete')}{' '} {deleteConfirmation.project.displayName || deleteConfirmation.project.name} ?
{deleteConfirmation.sessionCount > 0 && ({t('deleteConfirmation.sessionCount', { count: deleteConfirmation.sessionCount })}
{t('deleteConfirmation.allConversationsDeleted')}
{t('deleteConfirmation.cannotUndo')}
{t('deleteConfirmation.confirmDelete')}{' '} {sessionDeleteConfirmation.sessionTitle || t('sessions.unnamed')} ?
{t('deleteConfirmation.cannotUndo')}