From 0cf4c914a63c2821e71e9ce61133f098a2464f52 Mon Sep 17 00:00:00 2001 From: Chris Brind Date: Mon, 11 Apr 2022 10:29:55 +0100 Subject: [PATCH] move some state into the model so that SwiftUI doesn't remember it if that object comes back --- .../Model/HomePageRecentlyVisitedModel.swift | 4 ++++ .../Home Page/View/RecentlyVisitedView.swift | 14 ++++++-------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/DuckDuckGo/Home Page/Model/HomePageRecentlyVisitedModel.swift b/DuckDuckGo/Home Page/Model/HomePageRecentlyVisitedModel.swift index 69d427a0d0..a247a10a08 100644 --- a/DuckDuckGo/Home Page/Model/HomePageRecentlyVisitedModel.swift +++ b/DuckDuckGo/Home Page/Model/HomePageRecentlyVisitedModel.swift @@ -152,6 +152,10 @@ final class RecentlyVisitedSiteModel: ObservableObject { @Published var numberOfTrackersBlocked = 0 @Published var trackersFound = false + // These are used by the burning animation + @Published var isBurning = false + @Published var isHidden = false + init(domain: String, bookmarkManager: BookmarkManager = LocalBookmarkManager.shared) { self.domain = domain if let url = domain.url { diff --git a/DuckDuckGo/Home Page/View/RecentlyVisitedView.swift b/DuckDuckGo/Home Page/View/RecentlyVisitedView.swift index 0533130739..dc30c7397a 100644 --- a/DuckDuckGo/Home Page/View/RecentlyVisitedView.swift +++ b/DuckDuckGo/Home Page/View/RecentlyVisitedView.swift @@ -104,8 +104,6 @@ struct RecentlyVisitedSite: View { @ObservedObject var site: HomePage.Models.RecentlyVisitedSiteModel @State var isHovering = false - @State var isBurning = false - @State var isHidden = false var body: some View { ZStack(alignment: .top) { @@ -141,7 +139,7 @@ struct RecentlyVisitedSite: View { } .padding([.leading, .trailing, .top], 12) - .visibility(isHidden ? .invisible : .visible) + .visibility(site.isHidden ? .invisible : .visible) HStack(spacing: 2) { @@ -155,9 +153,9 @@ struct RecentlyVisitedSite: View { HoverButton(size: 24, imageName: "Burn", imageSize: 16, cornerRadius: 4) { isHovering = false - isBurning = true + site.isBurning = true withAnimation(.default.delay(0.4)) { - isHidden = true + site.isHidden = true } } .foregroundColor(Color("HomeFeedItemButtonTintColor")) @@ -166,15 +164,15 @@ struct RecentlyVisitedSite: View { } .padding(.trailing, 12) .padding(.top, 13) - .visibility(isHidden ? .invisible : .visible) + .visibility(site.isHidden ? .invisible : .visible) FireAnimation() .cornerRadius(8) - .visibility(isBurning ? .visible : .gone) + .visibility(site.isBurning ? .visible : .gone) .zIndex(100) .onAppear { withAnimation(.default.delay(1.0)) { - isBurning = false + site.isBurning = false } } .onDisappear {