add to import/export
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
import { Conversation } from '@/types/chat';
|
||||
import {
|
||||
ExportFormatV1,
|
||||
ExportFormatV2,
|
||||
@@ -6,6 +7,8 @@ import {
|
||||
LatestExportFormat,
|
||||
SupportedExportFormats,
|
||||
} from '@/types/export';
|
||||
import { FolderInterface } from '@/types/folder';
|
||||
import { Prompt } from '@/types/prompt';
|
||||
|
||||
import { cleanConversationHistory } from './clean';
|
||||
|
||||
@@ -109,18 +112,33 @@ export const exportData = () => {
|
||||
export const importData = (
|
||||
data: SupportedExportFormats,
|
||||
): LatestExportFormat => {
|
||||
const cleanedData = cleanData(data);
|
||||
const { history, folders, prompts } = cleanedData;
|
||||
const { history, folders, prompts } = cleanData(data);
|
||||
|
||||
const conversations = history;
|
||||
localStorage.setItem('conversationHistory', JSON.stringify(conversations));
|
||||
const oldConversations = localStorage.getItem('conversationHistory');
|
||||
const oldConversationsParsed = oldConversations
|
||||
? JSON.parse(oldConversations)
|
||||
: [];
|
||||
const newHistory: Conversation[] = [...oldConversationsParsed, ...history];
|
||||
localStorage.setItem('conversationHistory', JSON.stringify(newHistory));
|
||||
localStorage.setItem(
|
||||
'selectedConversation',
|
||||
JSON.stringify(conversations[conversations.length - 1]),
|
||||
JSON.stringify(newHistory[newHistory.length - 1]),
|
||||
);
|
||||
|
||||
localStorage.setItem('folders', JSON.stringify(folders));
|
||||
localStorage.setItem('prompts', JSON.stringify(prompts));
|
||||
const oldFolders = localStorage.getItem('folders');
|
||||
const oldFoldersParsed = oldFolders ? JSON.parse(oldFolders) : [];
|
||||
const newFolders: FolderInterface[] = [...oldFoldersParsed, ...folders];
|
||||
localStorage.setItem('folders', JSON.stringify(newFolders));
|
||||
|
||||
return cleanedData;
|
||||
const oldPrompts = localStorage.getItem('prompts');
|
||||
const oldPromptsParsed = oldPrompts ? JSON.parse(oldPrompts) : [];
|
||||
const newPrompts: Prompt[] = [...oldPromptsParsed, ...prompts];
|
||||
localStorage.setItem('prompts', JSON.stringify(newPrompts));
|
||||
|
||||
return {
|
||||
version: 4,
|
||||
history: newHistory.map((e, idx) => ({ ...e, id: `${idx}` })),
|
||||
folders: newFolders.map((e, idx) => ({ ...e, id: `${idx}` })),
|
||||
prompts: newPrompts.map((e, idx) => ({ ...e, id: `${idx}` })),
|
||||
};
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user