sparrowcode / AlertKit

Native alert from Apple Music & Feedback. Contains Done, Heart & Message and other presets.
https://sparrowcode.io/frameworks
MIT License
2.29k stars 130 forks source link

Alert blinks when navigate to another view #73

Open dr-star opened 2 weeks ago

dr-star commented 2 weeks ago

Given my view

import SwiftUI
import AlertKit

struct CreateRewardView: View {
    @StateObject var viewModel: CreateRewardViewModel = CreateRewardViewModel()
    @Environment(\.dismiss) private var dismiss

    var body: some View {
        VStack {
...
        }
        .toolbar {
            ToolbarItem(placement: .confirmationAction) {
                Button("Save", action: {
                    Task {
                        await viewModel.save()
                        dismiss()
                    }
                })
            }
        }
        .alert(isPresent: $viewModel.showCreatedAlert, view: viewModel.createdAlert)
    }
}

When the user clicks on "Save" button I showCreatedAlert becomes true so the alert is shown.

The problem is that a strange behavior happens when dismiss is triggered. The alert appears/disappears multiple times. Am I doing something wrong?

https://github.com/sparrowcode/AlertKit/assets/33574414/98af653b-d376-4709-8e78-851f7a260cdd

ivanvorobei commented 3 days ago

Looks like your view re-render twice, can you check it?