use dioxus::prelude::*;
use crate::stepper::StepperCtx;
#[derive(Props, Clone, PartialEq)]
pub struct StepperCompletedProps {
#[props(default)]
pub show: Option<bool>,
#[props(default)]
pub completed_step: Option<usize>,
#[props(default)]
pub class: String,
pub children: Element,
}
#[component]
pub fn StepperCompleted(props: StepperCompletedProps) -> Element {
let ctx = try_use_context::<Signal<StepperCtx>>();
let active_idx = ctx.as_ref().map(|c| c.read().active).unwrap_or(0);
let is_visible = if let Some(show) = props.show {
show
} else if let Some(target) = props.completed_step {
active_idx >= target
} else {
true
};
if is_visible {
rsx! {
div { class: "sd-stepper-completed {props.class}",
{props.children}
}
}
} else {
rsx! {}
}
}