mirror of
https://github.com/dscyrescotti/Memola.git
synced 2026-05-10 18:00:13 +02:00
feat: resolve memory issue
This commit is contained in:
@@ -8,9 +8,9 @@
|
||||
import SwiftUI
|
||||
|
||||
struct CanvasView: UIViewControllerRepresentable {
|
||||
@EnvironmentObject var tool: Tool
|
||||
@EnvironmentObject var canvas: Canvas
|
||||
@EnvironmentObject var history: History
|
||||
@ObservedObject var tool: Tool
|
||||
@ObservedObject var canvas: Canvas
|
||||
@ObservedObject var history: History
|
||||
|
||||
func makeUIViewController(context: Context) -> CanvasViewController {
|
||||
CanvasViewController(tool: tool, canvas: canvas, history: history)
|
||||
|
||||
@@ -27,17 +27,17 @@ struct MemoView: View {
|
||||
}
|
||||
|
||||
var body: some View {
|
||||
CanvasView()
|
||||
CanvasView(tool: tool, canvas: canvas, history: history)
|
||||
.ignoresSafeArea()
|
||||
.overlay(alignment: .trailing) {
|
||||
PenDock()
|
||||
PenDock(tool: tool, canvas: canvas)
|
||||
}
|
||||
.overlay(alignment: .bottomLeading) {
|
||||
zoomControl
|
||||
}
|
||||
.disabled(textFieldState)
|
||||
.overlay(alignment: .top) {
|
||||
Toolbar(memo: memo, size: size)
|
||||
Toolbar(size: size, memo: memo, canvas: canvas, history: history)
|
||||
}
|
||||
.disabled(canvas.state == .loading || canvas.state == .closing)
|
||||
.overlay {
|
||||
@@ -50,9 +50,6 @@ struct MemoView: View {
|
||||
EmptyView()
|
||||
}
|
||||
}
|
||||
.environmentObject(tool)
|
||||
.environmentObject(canvas)
|
||||
.environmentObject(history)
|
||||
}
|
||||
|
||||
@ViewBuilder
|
||||
|
||||
@@ -8,8 +8,8 @@
|
||||
import SwiftUI
|
||||
|
||||
struct PenDock: View {
|
||||
@EnvironmentObject var tool: Tool
|
||||
@EnvironmentObject var canvas: Canvas
|
||||
@ObservedObject var tool: Tool
|
||||
@ObservedObject var canvas: Canvas
|
||||
|
||||
let width: CGFloat = 90
|
||||
let height: CGFloat = 30
|
||||
|
||||
@@ -10,9 +10,9 @@ import Foundation
|
||||
|
||||
struct Toolbar: View {
|
||||
@Environment(\.dismiss) var dismiss
|
||||
|
||||
@EnvironmentObject var history: History
|
||||
@EnvironmentObject var canvas: Canvas
|
||||
|
||||
@ObservedObject var canvas: Canvas
|
||||
@ObservedObject var history: History
|
||||
|
||||
@State var memo: MemoObject
|
||||
@State var title: String
|
||||
@@ -20,9 +20,11 @@ struct Toolbar: View {
|
||||
|
||||
let size: CGFloat
|
||||
|
||||
init(memo: MemoObject, size: CGFloat) {
|
||||
self.memo = memo
|
||||
init(size: CGFloat, memo: MemoObject, canvas: Canvas, history: History) {
|
||||
self.size = size
|
||||
self.memo = memo
|
||||
self.canvas = canvas
|
||||
self.history = history
|
||||
self.title = memo.title
|
||||
}
|
||||
|
||||
@@ -136,6 +138,7 @@ struct Toolbar: View {
|
||||
}
|
||||
withPersistence(\.backgroundContext) { context in
|
||||
try? context.saveIfNeeded()
|
||||
context.refreshAllObjects()
|
||||
DispatchQueue.main.async {
|
||||
withAnimation {
|
||||
canvas.state = .closed
|
||||
|
||||
@@ -33,6 +33,7 @@ struct MemosView: View {
|
||||
MemoView(memo: memo)
|
||||
.onDisappear {
|
||||
withPersistence(\.viewContext) { context in
|
||||
try context.saveIfNeeded()
|
||||
context.refreshAllObjects()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user