char-fork/llama.cpp
git clone https://git.t4t.associates/char-fork/llama.cpp
094e53db1
char/aliceai-t5-moe
1import { afterNavigate , beforeNavigate } from '$app/navigation' ; 2import { draftMessagesStore } from '$lib/stores' ; 3import { onMount } from 'svelte' ; 4 5interface UseDraftMessagesOptions { 6getChatId :() => string | undefined ; 7getMessage :() => string ; 8getFiles :() => ChatUploadedFile []; 9setMessage :( message :string ) => void ; 10setFiles :( files :ChatUploadedFile []) => void ; 11getInitialMessage :() => string ; 12} 13 14export function useDraftMessages ( options :UseDraftMessagesOptions ) { 15onMount (() => { 16const chatId = options . getChatId (); 17const draft = draftMessagesStore . getDraftMessage ( chatId ); 18 19if (( draft . message || draft . files . length > 0 ) && ! options . getInitialMessage ()) { 20options . setMessage ( draft . message ); 21options . setFiles ( draft . files ); 22} 23}); 24 25beforeNavigate (() => { 26const chatId = options . getChatId (); 27 28draftMessagesStore . saveDraftMessage ( chatId , options . getMessage (), options . getFiles ()); 29}); 30 31afterNavigate (( navigation ) => { 32if ( navigation ?. from != null ) { 33const chatId = options . getChatId (); 34const draft = draftMessagesStore . getDraftMessage ( chatId ); 35 36options . setMessage ( draft . message ); 37options . setFiles ( draft . files ); 38} 39}); 40 41function clearDraft () { 42const chatId = options . getChatId (); 43 44draftMessagesStore . clearDraftMessage ( chatId ); 45} 46 47return { clearDraft}; 48}