Quellcode durchsuchen

fix: 修复首条动态不会自动展示的问题

陈文艺 vor 3 Wochen
Ursprung
Commit
327a9ff39c

+ 3 - 3
Lanu/Common/Wrapper/LNVisitedTimeWrapper.swift

@@ -10,12 +10,12 @@ import AutoCodable
 
 
 @propertyWrapper
-class LNVisitedTimeWrapper<T: Codable>: Codable {
+struct LNVisitedTimeWrapper<T: Codable>: Codable {
     private var obj: T
     private(set) var visited: TimeInterval = curTime
     
     var wrappedValue: T {
-        get {
+        mutating get {
             visited = curTime
             return obj
         }
@@ -41,7 +41,7 @@ class LNVisitedTimeWrapper<T: Codable>: Codable {
         case visited
     }
     
-    required convenience init(from decoder: any Decoder) throws {
+    init(from decoder: any Decoder) throws {
         let container = try decoder.container(keyedBy: CodingKeys.self)
         
         let obj = try container.decode(T.self, forKey: .obj)

+ 5 - 4
Lanu/Views/Profile/Feed/LNProfileFeedProvider.swift

@@ -72,11 +72,12 @@ extension LNProfileFeedProvider: LNFeedManagerNotify {
             guard let res else { return }
             
             let curFirst = feedList.first?.id ?? ""
-            guard let index = res.list.firstIndex(where: { $0.id == curFirst }) else {
-                return
+            if let index = res.list.firstIndex(where: { $0.id == curFirst })  {
+                let newItems = res.list[..<index]
+                feedList.insert(contentsOf: newItems, at: 0)
+            } else {
+                feedList.insert(contentsOf: res.list, at: 0)
             }
-            let newItems = res.list[..<index]
-            feedList.insert(contentsOf: newItems, at: 0)
             tableView?.reloadData()
         }
     }