import { useMemo } from 'react';
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 { normalizeProjectForSettings } from '../../utils/utils';
import type { DeleteProjectConfirmation, SessionDeleteConfirmation, SettingsProject } 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;
};
type TypedSettingsProps = {
isOpen: boolean;
onClose: () => void;
projects: SettingsProject[];
initialTab: string;
};
const SettingsComponent = Settings as (props: TypedSettingsProps) => JSX.Element;
function TypedSettings(props: TypedSettingsProps) {
return
{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')}