[Framework] Empty and error state handling for the Feed list #18

Merged
javier merged 5 commits from framework/feed/empty+error into main 2024-03-22 09:14:23 +00:00
2 changed files with 51 additions and 0 deletions
Showing only changes of commit b9a3b51759 - Show all commits

View File

@ -0,0 +1,47 @@
//
// FeedUnavailableView.swift
// Feed
//
// Created by Javier Cicchelli on 22/03/2024.
// Copyright © 2024 Röck+Cöde. All rights reserved.
//
import ReviewsUIKit
import SwiftUI
import UIKit
final class FeedUnavailableView: UIHostingController<UnavailableView> {
// MARK: Initialisers
convenience init(
systemImage: String,
title: String,
description: String,
button: String? = nil,
action: (() -> Void)? = nil
) {
self.init(rootView: .init(
systemImage: systemImage,
title: title,
description: description,
button: button,
action: action
))
}
// MARK: Functions
override func viewSafeAreaInsetsDidChange() {
super.viewSafeAreaInsetsDidChange()
if view.safeAreaInsets.bottom > 0 {
additionalSafeAreaInsets = .init(
top: 0,
left: 0,
bottom: -view.safeAreaInsets.bottom,
right: 0
)
}
}
}

View File

@ -13,6 +13,7 @@
028134712BACC8CC0074AB4B /* FeedListConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 028134702BACC8CC0074AB4B /* FeedListConfiguration.swift */; };
028134822BACCC780074AB4B /* FeedListCoordination.swift in Sources */ = {isa = PBXBuildFile; fileRef = 028134812BACCC770074AB4B /* FeedListCoordination.swift */; };
028134842BACD0B20074AB4B /* FeedItemCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 028134832BACD0B20074AB4B /* FeedItemCoordinator.swift */; };
0281348A2BAD08AB0074AB4B /* FeedUnavailableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 028134892BAD08AB0074AB4B /* FeedUnavailableView.swift */; };
02909E792BAB6B0200710E14 /* FilterOption.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02909E782BAB6B0200710E14 /* FilterOption.swift */; };
02909E7B2BAB6D2E00710E14 /* Bundle+Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02909E7A2BAB6D2E00710E14 /* Bundle+Constants.swift */; };
02909E7D2BAB7FFE00710E14 /* Review+DTOs.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02909E7C2BAB7FFE00710E14 /* Review+DTOs.swift */; };
@ -68,6 +69,7 @@
028134702BACC8CC0074AB4B /* FeedListConfiguration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeedListConfiguration.swift; sourceTree = "<group>"; };
028134812BACCC770074AB4B /* FeedListCoordination.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeedListCoordination.swift; sourceTree = "<group>"; };
028134832BACD0B20074AB4B /* FeedItemCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeedItemCoordinator.swift; sourceTree = "<group>"; };
028134892BAD08AB0074AB4B /* FeedUnavailableView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeedUnavailableView.swift; sourceTree = "<group>"; };
02909E782BAB6B0200710E14 /* FilterOption.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FilterOption.swift; sourceTree = "<group>"; };
02909E7A2BAB6D2E00710E14 /* Bundle+Constants.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Bundle+Constants.swift"; sourceTree = "<group>"; };
02909E7C2BAB7FFE00710E14 /* Review+DTOs.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Review+DTOs.swift"; sourceTree = "<group>"; };
@ -168,6 +170,7 @@
children = (
0220ADA22BA90646001E6A9F /* FeedItemView.swift */,
02EACF312BABB23A00FF8ECD /* TopWordsView.swift */,
028134892BAD08AB0074AB4B /* FeedUnavailableView.swift */,
);
path = Views;
sourceTree = "<group>";
@ -498,6 +501,7 @@
02DC7FAC2BA51B4C000EEEBE /* FeedItemViewController.swift in Sources */,
02909E7B2BAB6D2E00710E14 /* Bundle+Constants.swift in Sources */,
02EACF2E2BABA34600FF8ECD /* FeedItemCell.swift in Sources */,
0281348A2BAD08AB0074AB4B /* FeedUnavailableView.swift in Sources */,
028134842BACD0B20074AB4B /* FeedItemCoordinator.swift in Sources */,
02909E7D2BAB7FFE00710E14 /* Review+DTOs.swift in Sources */,
0220ADA32BA90646001E6A9F /* FeedItemView.swift in Sources */,