Swiftdata Rollingback not triggering view update

I have a view which is a form allowing me to edit details of a category item. In the toolbar, there is a button called "Cancel," whose sole function is to call the rollback function in the ModelContext class. This function should allow you to revert any changes made to the context.

However, it appears that this rollback function is neither triggering the view update nor working properly, as I need to restart the app to see the changes reverted which just work when the property "isAutosaveEnabled" is set to false.

Container configuration goes below

import SwiftUI

@main
struct Index: App {
    var body: some Scene {
        WindowGroup {
            Window()
        }
        .modelContainer(
            for: [
                Bill.self, Category.self
            ],
            isAutosaveEnabled: false,
            isUndoEnabled: true
        )
    }
}

Rollback usage that don't work

import SwiftUI
import SwiftData
import Foundation

struct CategoryForm: View {

    @Environment(\.presentationMode) private var presentationMode
    @Environment(\.modelContext) private var modelContext
    
    @Bindable var category: Category
    
    var body: some View {
        NavigationStack {
            Form {
                Section(
                    header: Text("Basic Information"),
                    content: {
                        TextField("Title", text: $category.name)
                    }
                )
            }
            
            .navigationTitle("New Category")
            .navigationBarTitleDisplayMode(.inline)
            
            .toolbar {

                // Cancel Button
                ToolbarItem(
                    placement: .topBarLeading,
                    content: {
                        Button(
                            action: onCancel,
                            label: {
                                Text("Cancel")
                            }
                        )
                    }
                )

                // Done Button
                ToolbarItem(
                    placement: .topBarTrailing,
                    content: {
                        Button(
                            action: onDone,
                            label: {
                                Text("Done")
                            }
                        )
                        .disabled(category.name.isEmpty)
                    }
                )
            }
        }
    }
    
    func onCancel() {
        modelContext.rollback()
        presentationMode.wrappedValue.dismiss()
    }
    func onDone() {
        
        modelContext.insert(category)
        
        do {
            try modelContext.save()
        } catch {
            fatalError("Failed to save category")
        }
        
        presentationMode.wrappedValue.dismiss()
    }
}
Swiftdata Rollingback not triggering view update
 
 
Q