@@ -186,10 +186,11 @@ defmodule ExRssWeb.FeedLive.Index do
186
186
end
187
187
188
188
attr :entry , Entry , required: true
189
+ attr :dom_id , :string , required: true
189
190
190
191
def entry ( assigns ) do
191
192
~H"""
192
- < ul class = "flex flex-col " >
193
+ < ul id = { @ dom_id } class = "flex flex-col phx-click-loading:opacity-50 " >
193
194
< li class = "flex flex-col md:flex-row " >
194
195
< div class = "flex flex-col " >
195
196
< a href = { @ entry . url } target = "_blank " > { @ entry . title } </ a >
@@ -201,12 +202,16 @@ defmodule ExRssWeb.FeedLive.Index do
201
202
href = { @ entry . url }
202
203
target = "_blank "
203
204
aria-label = { "View entry #{ @ entry . title } " }
204
- phx-click = "mark_as_read "
205
+ phx-click = { JS . push ( "mark_as_read" , loading: "# #{ @ dom_id } " ) }
205
206
phx-value-entry-id = { @ entry . id }
206
207
>
207
208
< . icon name = "hero-arrow-top-right-on-square-solid " />
208
209
</ a >
209
- < button aria-label = "Mark as read " phx-click = "mark_as_read " phx-value-entry-id = { @ entry . id } >
210
+ < button
211
+ aria-label = "Mark as read "
212
+ phx-click = { JS . push ( "mark_as_read" , loading: "##{ @ dom_id } " ) }
213
+ phx-value-entry-id = { @ entry . id }
214
+ >
210
215
< . icon name = "hero-check-circle-solid " />
211
216
</ button >
212
217
</ div >
@@ -228,19 +233,19 @@ defmodule ExRssWeb.FeedLive.Index do
228
233
~H"""
229
234
< ul class = "mb-6 flex flex-col space-y-4 " >
230
235
< li :for = { entry <- @ head_entries } >
231
- < . entry entry = { entry } />
236
+ < . entry entry = { entry } dom_id = { "entry- #{ entry . id } " } />
232
237
</ li >
233
238
< div > { @ number_of_entries_not_shown } entries not shown</ div >
234
239
< li :for = { entry <- @ tail_entries } >
235
- < . entry entry = { entry } />
240
+ < . entry entry = { entry } dom_id = { "entry- #{ entry . id } " } />
236
241
</ li >
237
242
</ ul >
238
243
"""
239
244
else
240
245
~H"""
241
246
< ul class = "mb-6 flex flex-col space-y-4 " >
242
247
< li :for = { entry <- @ entries } >
243
- < . entry entry = { entry } />
248
+ < . entry entry = { entry } dom_id = { "entry- #{ entry . id } " } />
244
249
</ li >
245
250
</ ul >
246
251
"""
0 commit comments