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(); } }} /> ); };