diff options
author | Vitaly Takmazov | 2024-05-15 09:50:08 +0300 |
---|---|---|
committer | Vitaly Takmazov | 2024-05-15 09:50:08 +0300 |
commit | 891418e90fe29515364a236a2bb9c81e2a37ff65 (patch) | |
tree | 35422be50e4b38534ba5a0d442c90668d7d07500 | |
parent | 517bc874906e5b81cade91f5c7903736779fbeb0 (diff) |
Refactor & reorganize project
* LoadableState -> Result
-rw-r--r-- | Juick.xcodeproj/project.pbxproj | 14 | ||||
-rw-r--r-- | JuickNext/Helpers/Errors.swift (renamed from JuickNext/LoadableState.swift) | 9 | ||||
-rw-r--r-- | JuickNext/MessageFetcher.swift | 12 | ||||
-rw-r--r-- | JuickNext/View/FeedView.swift (renamed from JuickNext/FeedView.swift) | 25 | ||||
-rw-r--r-- | JuickNext/View/LoadableImageView.swift (renamed from JuickNext/LoadableImageView.swift) | 0 | ||||
-rw-r--r-- | JuickNext/View/MessageView.swift (renamed from JuickNext/MessageView.swift) | 0 |
6 files changed, 26 insertions, 34 deletions
diff --git a/Juick.xcodeproj/project.pbxproj b/Juick.xcodeproj/project.pbxproj index 68ca4a4..2c548fc 100644 --- a/Juick.xcodeproj/project.pbxproj +++ b/Juick.xcodeproj/project.pbxproj @@ -61,7 +61,7 @@ 77AA76482BF48818007A0FA8 /* Models.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77AA76402BF48818007A0FA8 /* Models.swift */; }; 77AA764A2BF48818007A0FA8 /* FeedView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77AA76422BF48818007A0FA8 /* FeedView.swift */; }; 77AA764B2BF48818007A0FA8 /* MessageFetcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77AA76432BF48818007A0FA8 /* MessageFetcher.swift */; }; - 77AA764C2BF48818007A0FA8 /* LoadableState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77AA76442BF48818007A0FA8 /* LoadableState.swift */; }; + 77AA764C2BF48818007A0FA8 /* Errors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77AA76442BF48818007A0FA8 /* Errors.swift */; }; 77AA764D2BF48818007A0FA8 /* ImageFetcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77AA76452BF48818007A0FA8 /* ImageFetcher.swift */; }; 77AA76502BF488A9007A0FA8 /* Image+Data.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77AA764F2BF488A9007A0FA8 /* Image+Data.swift */; }; 77B09994189D0B9900A84F59 /* UIImage+Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = 77B09993189D0B9900A84F59 /* UIImage+Utils.m */; }; @@ -195,7 +195,7 @@ 77AA76402BF48818007A0FA8 /* Models.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Models.swift; sourceTree = "<group>"; }; 77AA76422BF48818007A0FA8 /* FeedView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FeedView.swift; sourceTree = "<group>"; }; 77AA76432BF48818007A0FA8 /* MessageFetcher.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageFetcher.swift; sourceTree = "<group>"; }; - 77AA76442BF48818007A0FA8 /* LoadableState.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoadableState.swift; sourceTree = "<group>"; }; + 77AA76442BF48818007A0FA8 /* Errors.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Errors.swift; sourceTree = "<group>"; }; 77AA76452BF48818007A0FA8 /* ImageFetcher.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ImageFetcher.swift; sourceTree = "<group>"; }; 77AA764F2BF488A9007A0FA8 /* Image+Data.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Image+Data.swift"; sourceTree = "<group>"; }; 77B09992189D0B9900A84F59 /* UIImage+Utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIImage+Utils.h"; sourceTree = "<group>"; }; @@ -279,6 +279,9 @@ 77163AC82A1051DE009BEE0E /* View */ = { isa = PBXGroup; children = ( + 77AA763E2BF48818007A0FA8 /* LoadableImageView.swift */, + 77AA763F2BF48818007A0FA8 /* MessageView.swift */, + 77AA76422BF48818007A0FA8 /* FeedView.swift */, 77163AB52A104786009BEE0E /* ContentView.swift */, ); path = View; @@ -455,12 +458,8 @@ isa = PBXGroup; children = ( 77AA764E2BF48890007A0FA8 /* Helpers */, - 77AA76422BF48818007A0FA8 /* FeedView.swift */, 77AA76452BF48818007A0FA8 /* ImageFetcher.swift */, - 77AA763E2BF48818007A0FA8 /* LoadableImageView.swift */, - 77AA76442BF48818007A0FA8 /* LoadableState.swift */, 77AA76432BF48818007A0FA8 /* MessageFetcher.swift */, - 77AA763F2BF48818007A0FA8 /* MessageView.swift */, 77AA76402BF48818007A0FA8 /* Models.swift */, 77163AC82A1051DE009BEE0E /* View */, 77163AB32A104786009BEE0E /* JuickApp.swift */, @@ -473,6 +472,7 @@ 77AA764E2BF48890007A0FA8 /* Helpers */ = { isa = PBXGroup; children = ( + 77AA76442BF48818007A0FA8 /* Errors.swift */, 77AA764F2BF488A9007A0FA8 /* Image+Data.swift */, ); path = Helpers; @@ -702,7 +702,7 @@ files = ( 77AA76472BF48818007A0FA8 /* MessageView.swift in Sources */, 77AA764B2BF48818007A0FA8 /* MessageFetcher.swift in Sources */, - 77AA764C2BF48818007A0FA8 /* LoadableState.swift in Sources */, + 77AA764C2BF48818007A0FA8 /* Errors.swift in Sources */, 77AA76502BF488A9007A0FA8 /* Image+Data.swift in Sources */, 77AA764A2BF48818007A0FA8 /* FeedView.swift in Sources */, 77163AB62A104786009BEE0E /* ContentView.swift in Sources */, diff --git a/JuickNext/LoadableState.swift b/JuickNext/Helpers/Errors.swift index a45edb2..5c47a70 100644 --- a/JuickNext/LoadableState.swift +++ b/JuickNext/Helpers/Errors.swift @@ -1,6 +1,6 @@ // -// LoadableState.swift -// tst +// Errors.swift +// JuickNext // // Created by Vitaly Takmazov on 10.12.2019. // Copyright © 2019 com.juick. All rights reserved. @@ -8,11 +8,6 @@ import Foundation -enum LoadableState<T> { - case loading - case fetched(Result<T, FetchError>) -} - enum FetchError: Error { case error(String) diff --git a/JuickNext/MessageFetcher.swift b/JuickNext/MessageFetcher.swift index 565cca0..8a150b8 100644 --- a/JuickNext/MessageFetcher.swift +++ b/JuickNext/MessageFetcher.swift @@ -1,6 +1,6 @@ // // MessageFetcher.swift -// tst +// JuickNext // // Created by Vitaly Takmazov on 10.12.2019. // Copyright © 2019 com.juick. All rights reserved. @@ -11,28 +11,28 @@ import Combine class MessageFetcher: ObservableObject { - @Published var state: LoadableState<Root> = .loading + @Published var state: Result<Root, FetchError>? = nil init(url: String) { guard let apiUrl = URL(string: url) else { - state = .fetched(.failure(.error("Malformed API URL."))) + state = .failure(.error("Malformed API URL.")) return } URLSession.shared.dataTask(with: apiUrl) { [weak self] (data, _, error) in if let error = error { - self?.state = .fetched(.failure(.error(error.localizedDescription))) + self?.state = .failure(.error(error.localizedDescription)) return } guard let data = data else { - self?.state = .fetched(.failure(.error("Malformed response data"))) + self?.state = .failure(.error("Malformed response data")) return } let root = try! JSONDecoder().decode(Root.self, from: data) DispatchQueue.main.async { [weak self] in - self?.state = .fetched(.success(root)) + self?.state = .success(root) } }.resume() } diff --git a/JuickNext/FeedView.swift b/JuickNext/View/FeedView.swift index 7e293bd..3a612e8 100644 --- a/JuickNext/FeedView.swift +++ b/JuickNext/View/FeedView.swift @@ -20,23 +20,20 @@ struct FeedView: View { private var stateContent: AnyView { switch messageFetcher.state { - case .loading: + case nil: return AnyView( ProgressView() ) - case .fetched(let result): - switch result { - case .failure(let error): - return AnyView( - Text(error.localizedDescription) - ) - case .success(let root): - return AnyView( - List(root) { (message: Message) in - MessageView(message: message) - } - ) - } + case .failure(let error): + return AnyView( + Text(error.localizedDescription) + ) + case .success(let root): + return AnyView( + List(root) { (message: Message) in + MessageView(message: message) + } + ) } } diff --git a/JuickNext/LoadableImageView.swift b/JuickNext/View/LoadableImageView.swift index 6a41dc2..6a41dc2 100644 --- a/JuickNext/LoadableImageView.swift +++ b/JuickNext/View/LoadableImageView.swift diff --git a/JuickNext/MessageView.swift b/JuickNext/View/MessageView.swift index 398978b..398978b 100644 --- a/JuickNext/MessageView.swift +++ b/JuickNext/View/MessageView.swift |