use bevy_ecs::{lifecycle::HookContext, prelude::*, world::DeferredWorld};
use crate::{FocusCause, InputFocus};
#[cfg(feature = "bevy_reflect")]
use bevy_reflect::{prelude::*, Reflect};
#[derive(Debug, Default, Component, Copy, Clone)]
#[cfg_attr(
feature = "bevy_reflect",
derive(Reflect),
reflect(Debug, Default, Component, Clone)
)]
#[component(on_add = on_auto_focus_added)]
pub struct AutoFocus;
fn on_auto_focus_added(mut world: DeferredWorld, HookContext { entity, .. }: HookContext) {
if let Some(mut input_focus) = world.get_resource_mut::<InputFocus>() {
input_focus.set(entity, FocusCause::Navigated);
}
}