Added throttle to the "loadItems()" function in the BrowseView view for the browse module.
This commit is contained in:
parent
6d1cf6f93e
commit
32c5fda8f1
@ -80,16 +80,12 @@ public struct BrowseView: View {
|
|||||||
isPresenting: $showCreateFolder,
|
isPresenting: $showCreateFolder,
|
||||||
id: folder.id
|
id: folder.id
|
||||||
) {
|
) {
|
||||||
Task {
|
Task { await loadItems() }
|
||||||
await loadItems()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
.delete(item: $itemToDelete) {
|
.delete(item: $itemToDelete) {
|
||||||
Task {
|
Task { await loadItems() }
|
||||||
await loadItems()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
.task(id: folder) {
|
.task {
|
||||||
await loadItems()
|
await loadItems()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -125,8 +121,7 @@ private extension BrowseView {
|
|||||||
}
|
}
|
||||||
.listStyle(.inset)
|
.listStyle(.inset)
|
||||||
.refreshable {
|
.refreshable {
|
||||||
Task { await loadItems()
|
Task { await loadItems() }
|
||||||
}
|
|
||||||
}
|
}
|
||||||
case .empty:
|
case .empty:
|
||||||
MessageView(
|
MessageView(
|
||||||
@ -137,9 +132,7 @@ private extension BrowseView {
|
|||||||
)
|
)
|
||||||
case .error:
|
case .error:
|
||||||
MessageView(type: .error) {
|
MessageView(type: .error) {
|
||||||
Task {
|
Task { await loadItems() }
|
||||||
await loadItems()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -216,6 +209,9 @@ private extension BrowseView {
|
|||||||
password: account.password
|
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 {
|
if loadedItems.isEmpty {
|
||||||
status = .empty
|
status = .empty
|
||||||
} else {
|
} 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
|
// MARK: - Previews
|
||||||
|
|
||||||
struct BrowseView_Previews: PreviewProvider {
|
struct BrowseView_Previews: PreviewProvider {
|
||||||
static var previews: some View {
|
static var previews: some View {
|
||||||
NavigationView {
|
NavigationView {
|
||||||
BrowseView(folder: .init(
|
BrowseView(folder: .init(
|
||||||
id: UUID().uuidString,
|
id: "1234567890",
|
||||||
name: "Some folder name"
|
name: "Some folder name"
|
||||||
)) {
|
)) {
|
||||||
// show profile closure.
|
// show profile closure.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user