11use chrono:: Utc ;
22use common:: dtos:: { CreateSlideGroupDto , SlideGroupDto } ;
33use icondata as i;
4- use leptos:: prelude:: * ;
4+ use leptos:: { leptos_dom :: logging :: console_log , prelude:: * } ;
55use leptos_icons:: Icon ;
66
77use crate :: {
88 api,
9- components:: { dialog :: Dialog , alert :: Alert , error:: ErrorList , slide:: SlideList } ,
9+ components:: { alert :: Alert , dialog :: Dialog , error:: ErrorList , slide:: SlideList } ,
1010 context:: SlideGroupOptionsContext ,
1111 utils:: {
1212 bool:: fmt_if,
@@ -238,8 +238,8 @@ fn SlideGroupEditOptions(
238238 <button class="btn" type ="button" on: click=move |_| set_editing_options. set( false ) >
239239 Cancel
240240 </button>
241- <button class="btn" type ="button" on: click=move |_| is_delete_dialog_open. set( true ) >
242- Delete
241+ <button class="btn btn-soft btn-error " type ="button" on: click=move |_| is_delete_dialog_open. set( true ) >
242+ Delete Group
243243 </button>
244244 </div>
245245 </fieldset>
@@ -255,10 +255,17 @@ fn SlideGroupViewOptions(
255255 slide_group : Signal < SlideGroupDto > ,
256256 set_editing_options : WriteSignal < bool > ,
257257) -> impl IntoView {
258+ let is_delete_dialog_open = RwSignal :: new ( false ) ;
259+
258260 view ! {
259261 <div>
260262 { move || {
261263 view! {
264+ <DeleteDialog
265+ slide_group_id=slide_group. get( ) . id
266+ open=is_delete_dialog_open
267+ set_editing_options=set_editing_options
268+ />
262269 <Show when=move || !slide_group. read( ) . archive_date. is_some( ) >
263270 <button on: click=move |_| set_editing_options. set( true ) class="btn" >Edit </button>
264271
@@ -272,6 +279,8 @@ fn SlideGroupViewOptions(
272279 }
273280 . into_any( )
274281 } }
282+
283+ <button on: click=move |_| is_delete_dialog_open. set( true ) class="btn btn-soft btn-error" >Delete Group </button>
275284 </Show >
276285 } . into_any( )
277286 } }
@@ -333,9 +342,15 @@ fn SlideGroupViewOptions(
333342}
334343
335344#[ component]
336- pub fn DeleteDialog ( #[ prop( ) ] slide_group_id : i32 , open : RwSignal < bool > , set_editing_options : WriteSignal < bool > ) -> impl IntoView {
345+ pub fn DeleteDialog (
346+ #[ prop( ) ] slide_group_id : i32 ,
347+ open : RwSignal < bool > ,
348+ set_editing_options : WriteSignal < bool > ,
349+ ) -> impl IntoView {
337350 let delete_action =
338- Action :: new_local ( move |_: & ( ) | async move { api:: archive_slide_group ( slide_group_id) . await } ) ;
351+ Action :: new_local (
352+ move |_: & ( ) | async move { api:: archive_slide_group ( slide_group_id) . await } ,
353+ ) ;
339354
340355 let Some ( page_context) = use_context :: < SlideGroupOptionsContext > ( ) else {
341356 // if context is not available, then hide button
@@ -358,7 +373,7 @@ pub fn DeleteDialog(#[prop()] slide_group_id: i32, open: RwSignal<bool>, set_edi
358373 <p>Are you sure you want to delete this slide group</p>
359374 </div>
360375 <div class="mt-6 flex gap-3" >
361- <button class="btn" on: click=move |_| { delete_action. dispatch( ( ) ) ; } >
376+ <button class="btn btn-error " on: click=move |_| { delete_action. dispatch( ( ) ) ; } >
362377 Delete
363378 </button>
364379 <button class="btn" type ="button" on: click=move |_| open. set( false ) >
0 commit comments