wishkit / wishkit-ios

In-App Feature Requests. Made Easy.
https://wishkit.io
MIT License
138 stars 24 forks source link

List of features disappears #39

Closed pballart closed 3 months ago

pballart commented 10 months ago

I implemented Wishkit in SwiftUI using a NavigationLink to present it in a push manner. Everything work fine except when leaving my app in the wishkit screen. After coming back from the background the list disappears. You can see the issue in the following video:

https://github.com/wishkit/wishkit-ios/assets/1868467/11c1150a-8851-4b72-8816-b6032a8f04ec

martinlasek commented 9 months ago

Hey @pballart, I am going to try to reproduce it on my end. Could you share:

I have downloaded your app and see the feedback list is currently being presented as a sheet (versus being pushed as a navigation destination). I wasn't able to reproduce the behavior on my iPhone 15 Pro on iOS 17.

I am going to try to further look into it.

pballart commented 9 months ago

Hello @martinlasek,

I am using an iPhone 15 Pro with iOS 17.3.1 and a WishKit version 4.1.0 My app is currently using WishKit version 4.0.5 but I just tried updating to 4.1.0 and running locally and the same issue happens. I managed to reproduce it on the simulator as well with Xcode 15.2 and iOS 17.2

Regarding the push vs sheet, firstly I had it with a navigation destination and changed to sheet in hopes of fixing the issue but it didn't help and I left it like that.

Let me know if I can help you with anything else.

martinlasek commented 3 months ago

I was able to reproduce it and it seems to only happen when you also have an .onReceive modifier present in the view. As @erenberkaydinc mentioned there's a simple workaround until I find a fix for this bug.

Simply wrap the WishKit.view in a container view and use that container view instead:

/// Container View
struct FeedbackContainerView: View {
    var body: some View {
        WishKit.view
    }
}

// Your App
struct SettingsView: View {
    var body: some View {
        VStack {
            ...

            NavigationLink {
                FeedbackContainerView()
            } label: {
                Text("Feature Requests")
            }
        }
    }
}

Hope this helps!

PS. Closing as it's a duplicate of #36 :)