composition.rs 627 B

123456789101112131415161718192021222324
  1. use dioxus_html::HasCompositionData;
  2. use web_sys::CompositionEvent;
  3. use super::{Synthetic, WebEventExt};
  4. impl HasCompositionData for Synthetic<CompositionEvent> {
  5. fn data(&self) -> std::string::String {
  6. self.event.data().unwrap_or_default()
  7. }
  8. fn as_any(&self) -> &dyn std::any::Any {
  9. &self.event
  10. }
  11. }
  12. impl WebEventExt for dioxus_html::CompositionData {
  13. type WebEvent = web_sys::CompositionEvent;
  14. #[inline(always)]
  15. fn try_as_web_event(&self) -> Option<Self::WebEvent> {
  16. self.downcast::<Synthetic<web_sys::CompositionEvent>>()
  17. .map(|e| e.event.clone())
  18. }
  19. }