import { ChatFolder, Conversation } from '@/types'; import { cleanConversationHistory } from '@/utils/app/clean'; import { IconFileImport } from '@tabler/icons-react'; import { useTranslation } from 'next-i18next'; import { FC } from 'react'; import { SidebarButton } from './SidebarButton'; interface Props { onImport: (data: { conversations: Conversation[]; folders: ChatFolder[]; }) => void; } export const Import: FC = ({ onImport }) => { const { t } = useTranslation('sidebar'); return ( <> { if (!e.target.files?.length) return; const file = e.target.files[0]; const reader = new FileReader(); reader.onload = (e) => { let json = JSON.parse(e.target?.result as string); if (json && !json.folders) { json = { history: cleanConversationHistory(json), folders: [] }; } onImport({ conversations: json.history, folders: json.folders }); }; reader.readAsText(file); }} /> } onClick={() => { const importFile = document.querySelector( '#import-file', ) as HTMLInputElement; if (importFile) { importFile.click(); } }} /> ); };