use yew::prelude::*;
use super::ColumnSettingsTarget;
#[derive(PartialEq, Clone, Properties)]
pub struct ExprEditButtonProps {
pub name: String,
pub is_expression: bool,
#[prop_or_default]
pub is_window: bool,
pub on_open_expr_panel: Callback<ColumnSettingsTarget>,
pub is_editing: bool,
pub is_disabled: bool,
}
#[function_component]
pub fn ExprEditButton(p: &ExprEditButtonProps) -> Html {
let onmousedown = yew::use_callback(p.clone(), |_, p| {
p.on_open_expr_panel
.emit(ColumnSettingsTarget::Column(p.name.clone()))
});
let class = if p.is_disabled {
"expression-edit-button disabled"
} else if p.is_editing {
"expression-edit-button is-editing"
} else {
"expression-edit-button"
};
html! { <span {onmousedown} {class}><span class="icon" /></span> }
}