FaModal
🟢 Doesn't need container
🟢 Accepts child/children
API
pub fn fa_modal<'a>(builder: &'a mut FamiqWidgetBuilder) -> FaModalBuilder<'a> {
// ..
}
Usage
let modal = fa_modal(&mut builder).build();
Show/Hide modal
Modals can be shown or hided by updating FaModalState component.
Example,
// store modal entity here to show/hide in future
#[derive(Resource)]
struct Modals {
entity: Entity
}
fn setup_ui(
// other args required by Famiq..
mut modals: ResMut<Modals>
) {
let text = fa_text(&mut builder, "Hello world").build();
let modal = fa_modal(&mut builder)
.children(vec![text])
.build();
modals.entity = modal;
}
// example system handle button press
fn on_btn_press_system(
modals: Res<Modals>,
mut modals_q: Query<&mut FaModalState>
) {
// some other code to handle button press event..
// set to true to show modal, false to hide.
if let Ok(mut state) = modals_q.get_mut(modals.entity) {
state.0 = true;
}
}