@@ -16,11 +16,13 @@ struct ArticleDetailView: View {
16
16
@State var saveMessasge = " "
17
17
@State var selectedCategory : Category ? = nil
18
18
@State var categories : [ Category ] = [
19
- Category ( name: " Technology " ) ,
20
- Category ( name: " Economy " ) ,
21
- Category ( name: " Politics " ) ,
19
+ Category ( name: " Business " ) ,
20
+ Category ( name: " Entertainment " ) ,
21
+ Category ( name: " General " ) ,
22
+ Category ( name: " Health " ) ,
23
+ Category ( name: " Science " ) ,
22
24
Category ( name: " Sports " ) ,
23
- Category ( name: " News " ) ,
25
+ Category ( name: " Technology " )
24
26
]
25
27
26
28
var body : some View {
@@ -117,17 +119,26 @@ struct ArticleDetailView: View {
117
119
}
118
120
119
121
}
122
+ // .onAppear {
123
+ // checkIfArticleIsSaved()
124
+ // checkIfCategoryIsChosen()
125
+ // if isArticleSaved {
126
+ // let savedArticles = Article.fetchAll(in: modelContext)
127
+ // if let storedArticle = savedArticles.first(where: { $0.url == article.url }) {
128
+ // selectedCategory = storedArticle.category
129
+ // }
130
+ // }
131
+ // }
120
132
. onAppear {
121
133
checkIfArticleIsSaved ( )
122
- checkIfCategoryIsChosen ( )
123
134
if isArticleSaved {
124
135
let savedArticles = Article . fetchAll ( in: modelContext)
125
136
if let storedArticle = savedArticles. first ( where: { $0. url == article. url } ) {
126
137
selectedCategory = storedArticle. category
138
+ isCategoryChosen = selectedCategory != nil
127
139
}
128
140
}
129
141
}
130
-
131
142
}
132
143
}
133
144
@@ -152,7 +163,7 @@ struct ArticleDetailView: View {
152
163
saveArticleWithCategory ( )
153
164
}
154
165
}
155
-
166
+
156
167
func saveArticleWithCategory( ) {
157
168
let storedArticle = Article (
158
169
article: article,
@@ -161,14 +172,16 @@ struct ArticleDetailView: View {
161
172
)
162
173
163
174
if let category = selectedCategory {
164
- category. articles. append ( storedArticle) ;
165
- modelContext. insert ( category) ;
175
+ storedArticle. category = category
176
+ category. articles. append ( storedArticle)
177
+ modelContext. insert ( category)
166
178
}
167
179
168
180
modelContext. insert ( storedArticle)
169
181
do {
170
182
try modelContext. save ( )
171
183
isArticleSaved = true
184
+ print ( " Article \( article. title) with category \( selectedCategory? . name ?? " " ) saved " )
172
185
} catch {
173
186
saveMessasge = " Failed to save article: \( error. localizedDescription) "
174
187
}
0 commit comments