Spaces:
Runtime error
Runtime error
import localforage from 'localforage'; | |
import { writable } from 'svelte/store'; | |
import { MessageType, Sender, type ChatData, type Message } from './types'; | |
import { nanoid } from 'nanoid'; | |
import { initImage } from './initImage'; | |
const intitalChatId = nanoid(); | |
const initMessage: Message = { | |
id: nanoid(), | |
content: initImage, | |
sender: Sender.USER, | |
type: MessageType.IMAGE, | |
timestamp: new Date().getTime() | |
} | |
const initialData: ChatData = [{ | |
id: intitalChatId, | |
messages: [initMessage], | |
blurb: `New Chat - ${intitalChatId}`, | |
timestamp: new Date().getTime() | |
}]; | |
const lastBase64Image = writable<string | null>(initMessage.content); | |
const loadingState = writable<string>(''); | |
const chatsStore = writable<ChatData>(initialData); | |
const selectedChatId = writable<string>(intitalChatId); | |
localforage.config({ | |
name: 'Pix2PixChat', | |
storeName: 'chatsStore' | |
}); | |
localforage.getItem<ChatData>('chatsStore').then((value) => { | |
if (value) { | |
chatsStore.set(value); | |
} else { | |
chatsStore.set(initialData); | |
} | |
}); | |
chatsStore.subscribe((value) => { | |
localforage.setItem<ChatData>('chatsStore', value) | |
return value; | |
}); | |
localforage.getItem<string>('selectedChatId').then((value) => { | |
if (value) { | |
selectedChatId.set(value); | |
} else { | |
selectedChatId.set(intitalChatId); | |
} | |
}); | |
selectedChatId.subscribe((value) => { | |
localforage.setItem<string>('selectedChatId', value) | |
return value; | |
}); | |
export { loadingState, chatsStore, selectedChatId, lastBase64Image }; |