proper clear draft message

This commit is contained in:
Eva Ho 2025-12-12 16:56:44 -05:00
parent ed553f51f7
commit 42d6a3f075
6 changed files with 29 additions and 2 deletions

View File

@ -305,6 +305,9 @@ func main() {
go func() {
<-signals
slog.Info("received SIGINT or SIGTERM signal, shutting down")
if err := st.ClearAllDrafts(); err != nil {
slog.Warn("failed to clear drafts on shutdown", "error", err)
}
quit()
}()

View File

@ -182,6 +182,11 @@ func osRun(_ func(), hasCompletedFirstRun, startHidden bool) {
}
func quit() {
if wv.Store != nil {
if err := wv.Store.ClearAllDrafts(); err != nil {
slog.Warn("failed to clear drafts on quit", "error", err)
}
}
C.quit()
}

View File

@ -111,6 +111,11 @@ func (*appCallbacks) UIRunning() bool {
}
func (app *appCallbacks) Quit() {
if wv.Store != nil {
if err := wv.Store.ClearAllDrafts(); err != nil {
slog.Warn("failed to clear drafts on quit", "error", err)
}
}
app.t.Quit()
wv.Terminate()
}

View File

@ -707,6 +707,14 @@ func (db *database) updateChatDraft(chatID string, draft string) error {
return nil
}
func (db *database) clearAllDrafts() error {
_, err := db.conn.Exec(`UPDATE chats SET draft = ''`)
if err != nil {
return fmt.Errorf("clear all drafts: %w", err)
}
return nil
}
// updateChatBrowserState updates only the browser_state for a chat
func (db *database) updateChatBrowserState(chatID string, state json.RawMessage) error {
_, err := db.conn.Exec(`UPDATE chats SET browser_state = ? WHERE id = ?`, string(state), chatID)

View File

@ -460,6 +460,14 @@ func (s *Store) UpdateChatDraft(chatID string, draft string) error {
return s.db.updateChatDraft(chatID, draft)
}
func (s *Store) ClearAllDrafts() error {
if err := s.ensureDB(); err != nil {
return err
}
return s.db.clearAllDrafts()
}
func (s *Store) UpdateChatBrowserState(chatID string, state json.RawMessage) error {
if err := s.ensureDB(); err != nil {
return err

View File

@ -268,8 +268,6 @@ function ChatForm({
if (textareaRef.current) {
textareaRef.current.style.height = "auto";
}
clearDraft();
};
// Clear loginPromptFeature when user becomes authenticated or no features are enabled