use yew::prelude::*;
use super::ColumnLocator;
#[derive(PartialEq, Clone, Properties)]
pub struct ExprEditButtonProps {
pub name: String,
pub is_expression: bool,
pub on_open_expr_panel: Callback<ColumnLocator>,
pub is_editing: bool,
pub is_disabled: bool,
}
#[function_component]
pub fn ExprEditButton(p: &ExprEditButtonProps) -> Html {
let onmousedown = yew::use_callback(p.clone(), |_, p| {
let name = if p.is_expression {
ColumnLocator::Expression(p.name.clone())
} else {
ColumnLocator::Table(p.name.clone())
};
p.on_open_expr_panel.emit(name)
});
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> }
}