1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
//! This crate provides wrapper for `alert`, `prompt` and `confirm` functions. //! `web-sys` provides a raw API which is hard to use. This crate provides an easy-to-use, //! idiomatic Rust API for these functions. //! //! See the documentation for [`alert`], [`prompt`] and [`confirm`] for more information. use wasm_bindgen::prelude::*; /// Calls the alert function. /// /// [MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/Window/alert) pub fn alert(message: &str) { window().alert_with_message(message).unwrap_throw() } /// Calls the confirm function. /// /// [MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/Window/confirm) pub fn confirm(message: &str) -> bool { window().confirm_with_message(message).unwrap_throw() } /// Calls the `prompt` function. /// /// A default value can be supplied which will be returned if the user doesn't input anything. /// This function will return `None` if the value of `default` is `None` and the user cancels /// the operation. /// /// [MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt) pub fn prompt(message: &str, default: Option<&str>) -> Option<String> { match default { Some(default) => window() .prompt_with_message_and_default(message, default) .expect_throw("can't read input"), None => window() .prompt_with_message(message) .expect_throw("can't read input"), } } #[inline] fn window() -> web_sys::Window { web_sys::window().expect_throw("can't access window") }