@@ -58,29 +58,18 @@ struct MyCollectionView: View {
5858 }
5959 }
6060 . navigationDestination ( for: MyCollectionDiaryRoute . self) { route in
61- if let diary = viewModel. myFeeds. first ( where: { $0. diaryId == route. diaryId } ) {
62- MyCollectionDiary (
63- diaryId: route. diaryId,
64- displayTag: viewModel. displayTag,
65- diary: diary
66- ) { changedDiaryId in
67- viewModel. removeMyFeedLocally ( diaryId: changedDiaryId)
68- collectionListRenderID = UUID ( )
69- Task {
70- await viewModel. refetchCollectionDataOnFocus ( )
71- }
72- }
73- } else {
74- VStack ( spacing: AppSpacing . s) {
75- Image ( systemName: " doc.text.magnifyingglass " )
76- . font ( . system( size: 24 , weight: . semibold) )
77- . foregroundStyle ( . white. opacity ( 0.72 ) )
78- Text ( " 일기를 찾을 수 없어요. " )
79- . font ( AppFont . paperlogy5Medium ( size: 14 ) )
80- . foregroundStyle ( . white. opacity ( 0.82 ) )
61+ let diary = viewModel. myFeeds. first ( where: { $0. diaryId == route. diaryId } ) ?? route. initialDiary
62+
63+ MyCollectionDiary (
64+ diaryId: route. diaryId,
65+ displayTag: viewModel. displayTag,
66+ diary: diary
67+ ) { changedDiaryId in
68+ viewModel. removeMyFeedLocally ( diaryId: changedDiaryId)
69+ collectionListRenderID = UUID ( )
70+ Task {
71+ await viewModel. refetchCollectionDataOnFocus ( )
8172 }
82- . frame ( maxWidth: . infinity, maxHeight: . infinity)
83- . background ( Color . black. ignoresSafeArea ( ) )
8473 }
8574 }
8675 }
@@ -110,7 +99,12 @@ struct MyCollectionView: View {
11099 } else {
111100 LazyVGrid ( columns: feedGridColumns, spacing: AppSpacing . s) {
112101 ForEach ( viewModel. myFeeds) { feed in
113- NavigationLink ( value: MyCollectionDiaryRoute ( diaryId: feed. diaryId) ) {
102+ NavigationLink (
103+ value: MyCollectionDiaryRoute (
104+ diaryId: feed. diaryId,
105+ initialDiary: feed
106+ )
107+ ) {
114108 MyCollectionFeedCard (
115109 feed: feed,
116110 formattedUpdateDate: viewModel. formattedUpdateDate ( from: feed. updateDate)
@@ -228,4 +222,13 @@ private enum MyCollectionScreenTransitionDirection {
228222
229223private struct MyCollectionDiaryRoute : Hashable {
230224 let diaryId : Int
225+ let initialDiary : DiaryFeedModel
226+
227+ static func == ( lhs: Self , rhs: Self ) -> Bool {
228+ lhs. diaryId == rhs. diaryId
229+ }
230+
231+ func hash( into hasher: inout Hasher ) {
232+ hasher. combine ( diaryId)
233+ }
231234}
0 commit comments