rename FeedItem to FeedItemDep

This commit is contained in:
Satindar Dhillon 2022-04-18 17:22:47 -07:00
parent a60a5e3991
commit 0fc7ff0a43
20 changed files with 45 additions and 45 deletions

View file

@ -7,12 +7,12 @@ public final class PDFViewerViewModel: ObservableObject {
@Published public var errorMessage: String?
@Published public var readerView: Bool = false
public var feedItem: FeedItem
public var feedItem: FeedItemDep
var subscriptions = Set<AnyCancellable>()
let services: Services
public init(services: Services, feedItem: FeedItem) {
public init(services: Services, feedItem: FeedItemDep) {
self.services = services
self.feedItem = feedItem
}

View file

@ -6,7 +6,7 @@ import Views
struct FeedCardNavigationLink: View {
@EnvironmentObject var dataService: DataService
let item: FeedItem
let item: FeedItemDep
@ObservedObject var viewModel: HomeFeedViewModel
@ -34,7 +34,7 @@ struct GridCardNavigationLink: View {
@State private var scale = 1.0
let item: FeedItem
let item: FeedItemDep
let actionHandler: (GridCardAction) -> Void
@Binding var isContextMenuOpen: Bool

View file

@ -58,7 +58,7 @@ import Views
}
}
.onReceive(NotificationCenter.default.publisher(for: Notification.Name("PushFeedItem"))) { notification in
if let feedItem = notification.userInfo?["feedItem"] as? FeedItem {
if let feedItem = notification.userInfo?["feedItem"] as? FeedItemDep {
viewModel.pushFeedItem(item: feedItem)
viewModel.selectedLinkItem = feedItem
}
@ -145,7 +145,7 @@ import Views
@EnvironmentObject var dataService: DataService
@Binding var prefersListLayout: Bool
@State private var itemToRemove: FeedItem?
@State private var itemToRemove: FeedItemDep?
@State private var confirmationShown = false
@ObservedObject var viewModel: HomeFeedViewModel
@ -269,13 +269,13 @@ import Views
struct HomeFeedGridView: View {
@EnvironmentObject var dataService: DataService
@State private var itemToRemove: FeedItem?
@State private var itemToRemove: FeedItemDep?
@State private var confirmationShown = false
@State var isContextMenuOpen = false
@ObservedObject var viewModel: HomeFeedViewModel
func contextMenuActionHandler(item: FeedItem, action: GridCardAction) {
func contextMenuActionHandler(item: FeedItemDep, action: GridCardAction) {
switch action {
case .toggleArchiveStatus:
viewModel.setLinkArchived(dataService: dataService, linkId: item.id, archived: !item.isArchived)

View file

@ -9,7 +9,7 @@ import Views
#if os(macOS)
struct HomeFeedView: View {
@EnvironmentObject var dataService: DataService
@State private var itemToRemove: FeedItem?
@State private var itemToRemove: FeedItemDep?
@State private var confirmationShown = false
@ObservedObject var viewModel: HomeFeedViewModel

View file

@ -14,15 +14,15 @@ import Views
/// Track label updates to be committed when user navigates back to grid view
var uncommittedLabelUpdates = [String: [FeedItemLabelDep]]()
@Published var items = [FeedItem]()
@Published var items = [FeedItemDep]()
@Published var isLoading = false
@Published var showPushNotificationPrimer = false
@Published var itemUnderLabelEdit: FeedItem?
@Published var itemUnderLabelEdit: FeedItemDep?
@Published var searchTerm = ""
@Published var selectedLabels = [FeedItemLabelDep]()
@Published var snoozePresented = false
@Published var itemToSnooze: FeedItem?
@Published var selectedLinkItem: FeedItem?
@Published var itemToSnooze: FeedItemDep?
@Published var selectedLinkItem: FeedItemDep?
var cursor: String?
var sendProgressUpdates = false
@ -36,7 +36,7 @@ import Views
init() {}
func itemAppeared(item: FeedItem, dataService: DataService) {
func itemAppeared(item: FeedItemDep, dataService: DataService) {
if isLoading { return }
let itemIndex = items.firstIndex(where: { $0.id == item.id })
let thresholdIndex = items.index(items.endIndex, offsetBy: -5)
@ -47,7 +47,7 @@ import Views
}
}
func pushFeedItem(item: FeedItem) {
func pushFeedItem(item: FeedItemDep) {
items.insert(item, at: 0)
}

View file

@ -5,7 +5,7 @@ import Views
struct ApplyLabelsView: View {
enum Mode {
case item(FeedItem)
case item(FeedItemDep)
case list([FeedItemLabelDep])
var navTitle: String {

View file

@ -19,7 +19,7 @@ final class LabelsViewModel: ObservableObject {
/// - dataService: `DataService` reference
/// - item: Optional `FeedItem` for applying labels to a single item
/// - initiallySelectedLabels: Optional `[FeedItemLabel]` for filtering a list of items
func loadLabels(dataService: DataService, item: FeedItem? = nil, initiallySelectedLabels: [FeedItemLabelDep]? = nil) {
func loadLabels(dataService: DataService, item: FeedItemDep? = nil, initiallySelectedLabels: [FeedItemLabelDep]? = nil) {
guard !hasLoadedInitialLabels else { return }
isLoading = true

View file

@ -6,17 +6,17 @@ import Utils
import Views
enum PDFProvider {
static var pdfViewerProvider: ((URL, FeedItem) -> AnyView)?
static var pdfViewerProvider: ((URL, FeedItemDep) -> AnyView)?
}
@MainActor final class LinkItemDetailViewModel: ObservableObject {
let homeFeedViewModel: HomeFeedViewModel
@Published var item: FeedItem
@Published var item: FeedItemDep
@Published var webAppWrapperViewModel: WebAppWrapperViewModel?
var subscriptions = Set<AnyCancellable>()
init(item: FeedItem, homeFeedViewModel: HomeFeedViewModel) {
init(item: FeedItemDep, homeFeedViewModel: HomeFeedViewModel) {
self.item = item
self.homeFeedViewModel = homeFeedViewModel
}

View file

@ -7,7 +7,7 @@ import WebKit
#if os(iOS)
struct WebReader: UIViewRepresentable {
let articleContent: ArticleContentDep
let item: FeedItem
let item: FeedItemDep
let openLinkAction: (URL) -> Void
let webViewActionHandler: (WKScriptMessage, WKScriptMessageReplyHandler?) -> Void
let navBarVisibilityRatioUpdater: (Double) -> Void

View file

@ -7,7 +7,7 @@ import WebKit
#if os(iOS)
struct WebReaderContainerView: View {
let item: FeedItem
let item: FeedItemDep
let homeFeedViewModel: HomeFeedViewModel
@State private var showFontSizePopover = false

View file

@ -5,12 +5,12 @@ import Utils
struct WebReaderContent {
let textFontSize: Int
let articleContent: ArticleContentDep
let item: FeedItem
let item: FeedItemDep
let themeKey: String
init(
articleContent: ArticleContentDep,
item: FeedItem,
item: FeedItemDep,
isDark: Bool,
fontSize: Int
) {

View file

@ -1,16 +1,16 @@
import Foundation
public struct HomeFeedData {
public let items: [FeedItem]
public let items: [FeedItemDep]
public let cursor: String?
public init(items: [FeedItem], cursor: String?) {
public init(items: [FeedItemDep], cursor: String?) {
self.items = items
self.cursor = cursor
}
}
public struct FeedItem: Identifiable, Hashable {
public struct FeedItemDep: Identifiable, Hashable {
public let id: String
public let title: String
public let createdAt: Date
@ -70,7 +70,7 @@ public struct FeedItem: Identifiable, Hashable {
self.labels = labels
}
public static func fromJsonArticle(linkData: Data) -> FeedItem? {
public static func fromJsonArticle(linkData: Data) -> FeedItemDep? {
try? JSONDecoder().decode(JSONArticle.self, from: linkData).feedItem
}
@ -114,8 +114,8 @@ struct JSONArticle: Decodable {
let url: String
let isArchived: Bool
var feedItem: FeedItem {
FeedItem(
var feedItem: FeedItemDep {
FeedItemDep(
id: id,
title: title,
createdAt: createdAt,

View file

@ -63,7 +63,7 @@ public final class DataService: ObservableObject {
}
public extension DataService {
func prefetchPages(items: [FeedItem]) {
func prefetchPages(items: [FeedItemDep]) {
guard let username = currentViewer?.username else { return }
for item in items {

View file

@ -8,9 +8,9 @@ public extension DataService {
itemID: String,
readingProgress: Double,
anchorIndex: Int
) -> AnyPublisher<FeedItem, SaveArticleError> {
) -> AnyPublisher<FeedItemDep, SaveArticleError> {
enum MutationResult {
case saved(feedItem: FeedItem)
case saved(feedItem: FeedItemDep)
case error(errorCode: Enums.SaveArticleReadingProgressErrorCode)
}

View file

@ -4,7 +4,7 @@ import Models
import SwiftGraphQL
public extension DataService {
func articlePublisher(slug: String) -> AnyPublisher<FeedItem, BasicError> {
func articlePublisher(slug: String) -> AnyPublisher<FeedItemDep, BasicError> {
internalViewerPublisher()
.flatMap { self.internalArticlePublisher(username: $0.username ?? "", slug: slug) }
.receive(on: DispatchQueue.main)
@ -13,9 +13,9 @@ public extension DataService {
}
extension DataService {
func internalArticlePublisher(username: String, slug: String) -> AnyPublisher<FeedItem, BasicError> {
func internalArticlePublisher(username: String, slug: String) -> AnyPublisher<FeedItemDep, BasicError> {
enum QueryResult {
case success(result: FeedItem)
case success(result: FeedItemDep)
case error(error: String)
}
@ -126,7 +126,7 @@ public extension DataService {
}
let homeFeedItemSelection = Selection.Article {
FeedItem(
FeedItemDep(
id: try $0.id(),
title: try $0.title(),
createdAt: try $0.createdAt().value ?? Date(),

View file

@ -32,7 +32,7 @@ public extension NSNotification {
return nil
}
static func pushFeedItem(feedItem: FeedItem) {
static func pushFeedItem(feedItem: FeedItemDep) {
NotificationCenter.default.post(name: NSNotification.PushFeedItem, object: nil, userInfo: ["feedItem": feedItem])
}

View file

@ -10,12 +10,12 @@ public enum GridCardAction {
public struct GridCard: View {
@Binding var isContextMenuOpen: Bool
let item: FeedItem
let item: FeedItemDep
let actionHandler: (GridCardAction) -> Void
let tapAction: () -> Void
public init(
item: FeedItem,
item: FeedItemDep,
isContextMenuOpen: Binding<Bool>,
actionHandler: @escaping (GridCardAction) -> Void,
tapAction: @escaping () -> Void

View file

@ -3,9 +3,9 @@ import SwiftUI
import Utils
public struct FeedCard: View {
let item: FeedItem
let item: FeedItemDep
public init(item: FeedItem) {
public init(item: FeedItemDep) {
self.item = item
}

View file

@ -3,12 +3,12 @@ import SwiftUI
public struct SnoozeView: View {
@Binding var snoozePresented: Bool
@Binding var itemToSnooze: FeedItem?
@Binding var itemToSnooze: FeedItemDep?
let snoozeAction: (SnoozeActionParams) -> Void
public init(
snoozePresented: Binding<Bool>,
itemToSnooze: Binding<FeedItem?>,
itemToSnooze: Binding<FeedItemDep?>,
snoozeAction: @escaping (SnoozeActionParams) -> Void
) {
self._snoozePresented = snoozePresented

View file

@ -57,7 +57,7 @@ extension AppDelegate: UNUserNotificationCenterDelegate {
let userInfo = response.notification.request.content.userInfo
if let linkData = userInfo["link"] as? String {
guard let jsonData = Data(base64Encoded: linkData) else { return }
if let item = FeedItem.fromJsonArticle(linkData: jsonData) {
if let item = FeedItemDep.fromJsonArticle(linkData: jsonData) {
NSNotification.pushFeedItem(feedItem: item)
}
}