diff --git a/pagetop-bootsier/src/lib.rs b/pagetop-bootsier/src/lib.rs index 543bca46..4f165f11 100644 --- a/pagetop-bootsier/src/lib.rs +++ b/pagetop-bootsier/src/lib.rs @@ -84,102 +84,166 @@ impl ThemeTrait for Bootsier { fn before_prepare_component(&self, component: &mut dyn ComponentTrait, _cx: &mut Context) { match component.handle() { COMPONENT_BASE_ICON => { - let i = component_as_mut::(component); - match i.font_size() { - FontSize::ExtraLarge => { - i.alter_classes(ClassesOp::Replace(i.font_size().to_string()), "fs-1"); - } - FontSize::XxLarge => { - i.alter_classes(ClassesOp::Replace(i.font_size().to_string()), "fs-2"); - } - FontSize::XLarge => { - i.alter_classes(ClassesOp::Replace(i.font_size().to_string()), "fs-3"); - } - FontSize::Large => { - i.alter_classes(ClassesOp::Replace(i.font_size().to_string()), "fs-4"); - } - FontSize::Medium => { - i.alter_classes(ClassesOp::Replace(i.font_size().to_string()), "fs-5"); - } - _ => {} - }; + if let Some(icon) = component_as_mut::(component) { + match icon.font_size() { + FontSize::ExtraLarge => { + icon.alter_classes( + ClassesOp::Replace(icon.font_size().to_string()), + "fs-1", + ); + } + FontSize::XxLarge => { + icon.alter_classes( + ClassesOp::Replace(icon.font_size().to_string()), + "fs-2", + ); + } + FontSize::XLarge => { + icon.alter_classes( + ClassesOp::Replace(icon.font_size().to_string()), + "fs-3", + ); + } + FontSize::Large => { + icon.alter_classes( + ClassesOp::Replace(icon.font_size().to_string()), + "fs-4", + ); + } + FontSize::Medium => { + icon.alter_classes( + ClassesOp::Replace(icon.font_size().to_string()), + "fs-5", + ); + } + _ => {} + }; + } } COMPONENT_BASE_BUTTON => { - let a = component_as_mut::