From ed495121ddf508e9ba6b1eed051461e59ac4cfb9 Mon Sep 17 00:00:00 2001 From: Manuel Cillero Date: Sat, 18 Nov 2023 08:27:40 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=A9=B9=20Fix=20component=20reference=20un?= =?UTF-8?q?wrap()=20issues?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pagetop-bootsier/src/lib.rs | 242 ++++++++++++++--------- pagetop-bulmix/src/lib.rs | 218 ++++++++++++-------- pagetop/src/core/component/definition.rs | 8 +- 3 files changed, 293 insertions(+), 175 deletions(-) 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::