From 87b53e069afc4dbe5ad9afac1b1e57e41e83da79 Mon Sep 17 00:00:00 2001 From: dscyrescotti Date: Sun, 9 Jun 2024 14:40:33 +0700 Subject: [PATCH] feat: save memo before dismissing canvas view --- Memola/Canvas/Contexts/GraphicContext.swift | 8 ++++---- Memola/Features/Memo/Toolbar/Toolbar.swift | 16 ++++++++-------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/Memola/Canvas/Contexts/GraphicContext.swift b/Memola/Canvas/Contexts/GraphicContext.swift index ebf6c3e..37ceee1 100644 --- a/Memola/Canvas/Contexts/GraphicContext.swift +++ b/Memola/Canvas/Contexts/GraphicContext.swift @@ -203,15 +203,15 @@ extension GraphicContext { withPersistence(\.backgroundContext) { [penStroke] context in penStroke.object?.bounds = penStroke.bounds try context.saveIfNeeded() - if let object = penStroke.object { - context.refresh(object, mergeChanges: false) - } + context.refreshAllObjects() } } else if let eraserStroke = currentStroke.stroke(as: EraserStroke.self) { eraserStroke.saveQuads() eraserStrokes.insert(eraserStroke) - withPersistence(\.backgroundContext) { context in + withPersistence(\.backgroundContext) { [eraserStroke] context in + eraserStroke.object?.bounds = eraserStroke.bounds try context.saveIfNeeded() + context.refreshAllObjects() } } previousStroke = currentStroke diff --git a/Memola/Features/Memo/Toolbar/Toolbar.swift b/Memola/Features/Memo/Toolbar/Toolbar.swift index 32b13a8..0f4d48d 100644 --- a/Memola/Features/Memo/Toolbar/Toolbar.swift +++ b/Memola/Features/Memo/Toolbar/Toolbar.swift @@ -128,15 +128,15 @@ struct Toolbar: View { } func closeMemo() { - DispatchQueue.global(qos: .userInitiated).async { + withAnimation { + canvas.state = .closing + } + withPersistence(\.backgroundContext) { context in + try? context.saveIfNeeded() DispatchQueue.main.async { - canvas.state = .closing - } - withPersistenceSync(\.viewContext) { context in - try context.saveIfNeeded() - } - DispatchQueue.main.async { - canvas.state = .closed + withAnimation { + canvas.state = .closed + } dismiss() } }