feat: change to PopoverTrigger class (#59)

This commit is contained in:
luoxiaozero 2023-12-23 13:28:50 +08:00 committed by GitHub
parent 5ab09bb281
commit 3b63be026e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 14 deletions

View file

@ -272,16 +272,6 @@ pub fn PopoverPage() -> impl IntoView {
<td> <td>
<Text code=true>"Default::default()"</Text> <Text code=true>"Default::default()"</Text>
</td> </td>
<td>"Addtional classes for the trigger element."</td>
</tr>
<tr>
<td>"content_class"</td>
<td>
<Text code=true>"MaybeSignal<String>"</Text>
</td>
<td>
<Text code=true>"Default::default()"</Text>
</td>
<td>"Content class of the popover."</td> <td>"Content class of the popover."</td>
</tr> </tr>
<tr> <tr>

View file

@ -12,13 +12,14 @@ pub use theme::PopoverTheme;
#[slot] #[slot]
pub struct PopoverTrigger { pub struct PopoverTrigger {
#[prop(optional, into)]
class: MaybeSignal<String>,
children: Children, children: Children,
} }
#[component] #[component]
pub fn Popover( pub fn Popover(
#[prop(optional, into)] class: MaybeSignal<String>, #[prop(optional, into)] class: MaybeSignal<String>,
#[prop(optional, into)] content_class: MaybeSignal<String>,
#[prop(optional)] trigger_type: PopoverTriggerType, #[prop(optional)] trigger_type: PopoverTriggerType,
popover_trigger: PopoverTrigger, popover_trigger: PopoverTrigger,
#[prop(optional)] placement: PopoverPlacement, #[prop(optional)] placement: PopoverPlacement,
@ -106,16 +107,20 @@ pub fn Popover(
is_show_popover.update(|show| *show = !*show); is_show_popover.update(|show| *show = !*show);
}); });
}); });
let PopoverTrigger {
class: trigger_class,
children: trigger_children,
} = popover_trigger;
view! { view! {
<Binder target_ref> <Binder target_ref>
<div <div
class=class_list!["thaw-popover-trigger", move || class.get()] class=class_list!["thaw-popover-trigger", move || trigger_class.get()]
ref=target_ref ref=target_ref
on:mouseenter=on_mouse_enter on:mouseenter=on_mouse_enter
on:mouseleave=on_mouse_leave on:mouseleave=on_mouse_leave
> >
{(popover_trigger.children)()} {trigger_children()}
</div> </div>
<Follower slot show=is_show_popover placement> <Follower slot show=is_show_popover placement>
<div <div
@ -125,7 +130,7 @@ pub fn Popover(
on:mouseenter=on_mouse_enter on:mouseenter=on_mouse_enter
on:mouseleave=on_mouse_leave on:mouseleave=on_mouse_leave
> >
<div class=move || content_class.get()>{children()}</div> <div class=move || class.get()>{children()}</div>
<div class="thaw-popover__angle-container"> <div class="thaw-popover__angle-container">
<div class="thaw-popover__angle"></div> <div class="thaw-popover__angle"></div>
</div> </div>