diff --git a/Modules/Sources/Browse/UI/Views/BrowseView.swift b/Modules/Sources/Browse/UI/Views/BrowseView.swift index 1024c84..f99a35b 100644 --- a/Modules/Sources/Browse/UI/Views/BrowseView.swift +++ b/Modules/Sources/Browse/UI/Views/BrowseView.swift @@ -80,16 +80,12 @@ public struct BrowseView: View { isPresenting: $showCreateFolder, id: folder.id ) { - Task { - await loadItems() - } + Task { await loadItems() } } .delete(item: $itemToDelete) { - Task { - await loadItems() - } + Task { await loadItems() } } - .task(id: folder) { + .task { await loadItems() } } @@ -125,8 +121,7 @@ private extension BrowseView { } .listStyle(.inset) .refreshable { - Task { await loadItems() - } + Task { await loadItems() } } case .empty: MessageView( @@ -137,9 +132,7 @@ private extension BrowseView { ) case .error: MessageView(type: .error) { - Task { - await loadItems() - } + Task { await loadItems() } } } } @@ -216,6 +209,9 @@ private extension BrowseView { password: account.password ) + // Added some throttle (1 second) not to hide the loading indicator right away. + try await Task.sleep(nanoseconds: .Constants.secondInNanoseconds) + if loadedItems.isEmpty { status = .empty } else { @@ -239,13 +235,21 @@ private extension BrowseView { } } +// MARK: - UInt64+Constants + +private extension UInt64 { + enum Constants { + static let secondInNanoseconds = UInt64(1 * Double(NSEC_PER_SEC)) + } +} + // MARK: - Previews struct BrowseView_Previews: PreviewProvider { static var previews: some View { NavigationView { BrowseView(folder: .init( - id: UUID().uuidString, + id: "1234567890", name: "Some folder name" )) { // show profile closure.