Make router work on web
This commit is contained in:
51 files changed
+110
-98
No files matched your search
@@ -3,10 +3,10 @@ This example is a simple iOS-style calculator. This particular example can run a
|
||||
This calculator version uses React-style state management. All state is held as individual use_states.
|
||||
*/
|
||||
|
||||
use dioxus::desktop::{Config, LogicalSize, WindowBuilder};
|
||||
use dioxus::events::*;
|
||||
use dioxus::html::input_data::keyboard_types::Key;
|
||||
use dioxus::prelude::*;
|
||||
use dioxus_desktop::{Config, LogicalSize, WindowBuilder};
|
||||
|
||||
fn main() {
|
||||
LaunchBuilder::desktop()
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
use dioxus::prelude::*;
|
||||
use dioxus_signals::use_signal;
|
||||
|
||||
fn main() {
|
||||
launch_desktop(app);
|
||||
|
||||
+2
-2
@@ -21,7 +21,7 @@ fn app() -> Element {
|
||||
|
||||
let open_compose_window = move |_evt: MouseEvent| {
|
||||
let tx = handle.tx();
|
||||
dioxus_desktop::window().new_window(
|
||||
dioxus::desktop::window().new_window(
|
||||
VirtualDom::new_with_props(compose, Rc::new(move |s| tx.unbounded_send(s).unwrap())),
|
||||
Default::default(),
|
||||
);
|
||||
@@ -51,7 +51,7 @@ fn compose(send: Rc<dyn Fn(String)>) -> Element {
|
||||
button {
|
||||
onclick: move |_| {
|
||||
send(user_input.cloned());
|
||||
dioxus_desktop::window().close();
|
||||
dioxus::desktop::window().close();
|
||||
},
|
||||
"Click to send"
|
||||
}
|
||||
|
||||
+9
-7
@@ -1,13 +1,15 @@
|
||||
//! Tiny CRM: A port of the Yew CRM example to Dioxus.
|
||||
use dioxus::prelude::*;
|
||||
use dioxus_desktop::{LogicalSize, WindowBuilder};
|
||||
use dioxus_router::prelude::*;
|
||||
use dioxus::router::prelude::*;
|
||||
|
||||
fn main() {
|
||||
LaunchBuilder::new()
|
||||
.with_cfg(desktop!(
|
||||
dioxus_desktop::Config::default()
|
||||
.with_window(WindowBuilder::new().with_inner_size(LogicalSize::new(800, 600)))
|
||||
.with_cfg(desktop!(
|
||||
{
|
||||
use dioxus::desktop::{LogicalSize, WindowBuilder};
|
||||
dioxus::desktop::Config::default()
|
||||
.with_window(WindowBuilder::new().with_inner_size(LogicalSize::new(800, 600)))
|
||||
}
|
||||
))
|
||||
.launch(|| {
|
||||
rsx! {
|
||||
@@ -79,7 +81,7 @@ fn ClientAdd() -> Element {
|
||||
});
|
||||
|
||||
// And then navigate back to the client list
|
||||
dioxus_router::router().push(Route::ClientList {});
|
||||
dioxus::router::router().push(Route::ClientList {});
|
||||
};
|
||||
|
||||
rsx! {
|
||||
@@ -140,7 +142,7 @@ fn Settings() -> Element {
|
||||
class: "pure-button pure-button-primary red",
|
||||
onclick: move |_| {
|
||||
CLIENTS.write().clear();
|
||||
dioxus_router::router().push(Route::ClientList {});
|
||||
dioxus::router::router().push(Route::ClientList {});
|
||||
},
|
||||
"Remove all Clients"
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
//! This example shows how to use a custom index.html and custom <HEAD> extensions
|
||||
//! to add things like stylesheets, scripts, and third-party JS libraries.
|
||||
|
||||
use dioxus::desktop::Config;
|
||||
use dioxus::prelude::*;
|
||||
use dioxus_desktop::Config;
|
||||
|
||||
fn main() {
|
||||
LaunchBuilder::desktop()
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
use dioxus::desktop::{use_asset_handler, wry::http::Response};
|
||||
use dioxus::prelude::*;
|
||||
use dioxus_desktop::{use_asset_handler, wry::http::Response};
|
||||
|
||||
fn main() {
|
||||
launch_desktop(app);
|
||||
|
||||
@@ -8,8 +8,8 @@
|
||||
//! It also uses `use_ref` to maintain a model, rather than `use_state`. That way,
|
||||
//! we dont need to clutter our code with `read` commands.
|
||||
|
||||
use dioxus::desktop::{Config, WindowBuilder};
|
||||
use dioxus::prelude::*;
|
||||
use dioxus_desktop::{Config, WindowBuilder};
|
||||
|
||||
fn main() {
|
||||
LaunchBuilder::desktop()
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
use dioxus::desktop::Config;
|
||||
use dioxus::prelude::*;
|
||||
use dioxus_desktop::Config;
|
||||
|
||||
fn main() {
|
||||
LaunchBuilder::desktop()
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
use dioxus::desktop::{tao::dpi::LogicalSize, Config, WindowBuilder};
|
||||
use dioxus::prelude::*;
|
||||
use dioxus_desktop::{tao::dpi::LogicalSize, Config, WindowBuilder};
|
||||
use dioxus_router::prelude::*;
|
||||
use dioxus::router::prelude::*;
|
||||
|
||||
fn main() {
|
||||
LaunchBuilder::desktop()
|
||||
|
||||
@@ -9,8 +9,8 @@
|
||||
//! In this example, we pre-render the page to HTML and then pass it into the desktop configuration. This serves as a
|
||||
//! proof-of-concept for the hydration feature, but you'll probably only want to use hydration for the web.
|
||||
|
||||
use dioxus::desktop::Config;
|
||||
use dioxus::prelude::*;
|
||||
use dioxus_desktop::Config;
|
||||
|
||||
fn main() {
|
||||
LaunchBuilder::desktop()
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
use dioxus::prelude::*;
|
||||
use dioxus_router::prelude::*;
|
||||
use dioxus::router::prelude::*;
|
||||
|
||||
fn main() {
|
||||
launch_desktop(App);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
use anyhow::Result;
|
||||
use dioxus::desktop::Config;
|
||||
use dioxus::prelude::*;
|
||||
use dioxus_desktop::Config;
|
||||
#[cfg(target_os = "android")]
|
||||
use wry::android_binding;
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ fn app() -> Element {
|
||||
button {
|
||||
onclick: move |_| {
|
||||
let dom = VirtualDom::new(popup);
|
||||
dioxus_desktop::window().new_window(dom, Default::default());
|
||||
dioxus::desktop::window().new_window(dom, Default::default());
|
||||
},
|
||||
"New Window"
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ pub(crate) mod views;
|
||||
use oidc::{AuthRequestState, AuthTokenState};
|
||||
use router::Route;
|
||||
|
||||
use dioxus_router::prelude::*;
|
||||
use dioxus::router::prelude::*;
|
||||
|
||||
use crate::{
|
||||
constants::{DIOXUS_FRONT_AUTH_REQUEST, DIOXUS_FRONT_AUTH_TOKEN},
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
use crate::views::{header::AuthHeader, home::Home, login::Login, not_found::NotFound};
|
||||
use dioxus::prelude::*;
|
||||
use dioxus_router::prelude::*;
|
||||
use dioxus::router::prelude::*;
|
||||
|
||||
#[derive(Routable, Clone)]
|
||||
pub enum Route {
|
||||
|
||||
@@ -9,7 +9,7 @@ use crate::{
|
||||
FERMI_AUTH_REQUEST, FERMI_AUTH_TOKEN, FERMI_CLIENT,
|
||||
};
|
||||
use dioxus::prelude::*;
|
||||
use dioxus_router::prelude::{Link, Outlet};
|
||||
use dioxus::router::prelude::{Link, Outlet};
|
||||
use fermi::*;
|
||||
use openidconnect::{url::Url, OAuth2TokenResponse, TokenResponse};
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ use crate::{
|
||||
DIOXUS_FRONT_URL, FERMI_AUTH_REQUEST, FERMI_AUTH_TOKEN, FERMI_CLIENT,
|
||||
};
|
||||
use dioxus::prelude::*;
|
||||
use dioxus_router::prelude::{Link, NavigationTarget};
|
||||
use dioxus::router::prelude::{Link, NavigationTarget};
|
||||
use fermi::*;
|
||||
use openidconnect::{OAuth2TokenResponse, TokenResponse};
|
||||
|
||||
|
||||
+4
-4
@@ -1,5 +1,5 @@
|
||||
use dioxus::desktop::{tao::dpi::PhysicalPosition, LogicalSize, WindowBuilder};
|
||||
use dioxus::prelude::*;
|
||||
use dioxus_desktop::{tao::dpi::PhysicalPosition, LogicalSize, WindowBuilder};
|
||||
|
||||
fn main() {
|
||||
LaunchBuilder::desktop().with_cfg(make_config());
|
||||
@@ -17,7 +17,7 @@ fn app() -> Element {
|
||||
width: "100%",
|
||||
height: "10px",
|
||||
background_color: "black",
|
||||
onmousedown: move |_| dioxus_desktop::window().drag(),
|
||||
onmousedown: move |_| dioxus::desktop::window().drag(),
|
||||
}
|
||||
|
||||
"This is an overlay!"
|
||||
@@ -25,8 +25,8 @@ fn app() -> Element {
|
||||
}
|
||||
}
|
||||
|
||||
fn make_config() -> dioxus_desktop::Config {
|
||||
dioxus_desktop::Config::default()
|
||||
fn make_config() -> dioxus::desktop::Config {
|
||||
dioxus::desktop::Config::default()
|
||||
.with_window(make_window())
|
||||
.with_custom_head(
|
||||
r#"
|
||||
|
||||
@@ -17,12 +17,12 @@
|
||||
//! the RefCell will panic and crash. You can use `try_get_mut` or `.modify` to avoid this problem, or just not hold two
|
||||
//! RefMuts at the same time.
|
||||
|
||||
use dioxus::desktop::tao::dpi::LogicalSize;
|
||||
use dioxus::desktop::{Config, WindowBuilder};
|
||||
use dioxus::events::*;
|
||||
use dioxus::html::input_data::keyboard_types::Key;
|
||||
use dioxus::html::MouseEvent;
|
||||
use dioxus::prelude::*;
|
||||
use dioxus_desktop::tao::dpi::LogicalSize;
|
||||
use dioxus_desktop::{Config, WindowBuilder};
|
||||
|
||||
fn main() {
|
||||
let cfg = Config::new().with_window(
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
use std::fmt::Display;
|
||||
|
||||
use dioxus::prelude::*;
|
||||
use dioxus_router::prelude::*;
|
||||
use dioxus::router::prelude::*;
|
||||
|
||||
#[derive(Routable, Clone)]
|
||||
#[rustfmt::skip]
|
||||
@@ -40,7 +40,7 @@ impl Display for ManualBlogQuerySegments {
|
||||
}
|
||||
}
|
||||
|
||||
/// The query segment is anything that implements <https://docs.rs/dioxus-router/latest/dioxus_router/routable/trait.FromQuery.html>. You can implement that trait for a struct if you want to parse multiple query parameters.
|
||||
/// The query segment is anything that implements <https://docs.rs/dioxus-router/latest/dioxus::router/routable/trait.FromQuery.html>. You can implement that trait for a struct if you want to parse multiple query parameters.
|
||||
impl FromQuery for ManualBlogQuerySegments {
|
||||
fn from_query(query: &str) -> Self {
|
||||
let mut name = None;
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
use dioxus::prelude::*;
|
||||
use dioxus_router::prelude::*;
|
||||
use dioxus::router::prelude::*;
|
||||
|
||||
fn main() {
|
||||
launch_desktop(|| {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
use dioxus::desktop::use_global_shortcut;
|
||||
use dioxus::prelude::*;
|
||||
use dioxus_desktop::use_global_shortcut;
|
||||
|
||||
fn main() {
|
||||
launch_desktop(app);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#![allow(non_snake_case)]
|
||||
|
||||
use dioxus::prelude::*;
|
||||
use dioxus_router::prelude::*;
|
||||
use dioxus::router::prelude::*;
|
||||
|
||||
fn main() {
|
||||
launch_desktop(|| {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#![allow(non_snake_case)]
|
||||
|
||||
use dioxus::prelude::*;
|
||||
use dioxus_router::prelude::*;
|
||||
use dioxus::router::prelude::*;
|
||||
|
||||
#[derive(Routable, Clone, PartialEq)]
|
||||
enum Route {
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
use dioxus::prelude::*;
|
||||
use dioxus_signals::use_signal;
|
||||
use futures_util::{future, stream, Stream, StreamExt};
|
||||
use std::time::Duration;
|
||||
|
||||
|
||||
@@ -13,8 +13,8 @@
|
||||
//! We can achieve the majority of suspense functionality by composing "suspenseful"
|
||||
//! primitives in our own custom components.
|
||||
|
||||
use dioxus::desktop::{Config, LogicalSize, WindowBuilder};
|
||||
use dioxus::prelude::*;
|
||||
use dioxus_desktop::{Config, LogicalSize, WindowBuilder};
|
||||
|
||||
fn main() {
|
||||
LaunchBuilder::desktop()
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
use dioxus::desktop::wry::http;
|
||||
use dioxus::desktop::wry::http::Response;
|
||||
use dioxus::desktop::{use_asset_handler, AssetRequest};
|
||||
use dioxus::prelude::*;
|
||||
use dioxus_desktop::wry::http;
|
||||
use dioxus_desktop::wry::http::Response;
|
||||
use dioxus_desktop::{use_asset_handler, AssetRequest};
|
||||
use http::{header::*, response::Builder as ResponseBuilder, status::StatusCode};
|
||||
use std::{io::SeekFrom, path::PathBuf};
|
||||
use tokio::io::AsyncReadExt;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
use dioxus::desktop::{window, Config, WindowBuilder};
|
||||
use dioxus::prelude::*;
|
||||
use dioxus_desktop::{window, Config, WindowBuilder};
|
||||
|
||||
fn main() {
|
||||
LaunchBuilder::desktop()
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
use dioxus::desktop::tao::event::Event as WryEvent;
|
||||
use dioxus::desktop::tao::event::WindowEvent;
|
||||
use dioxus::desktop::use_wry_event_handler;
|
||||
use dioxus::desktop::{Config, WindowCloseBehaviour};
|
||||
use dioxus::prelude::*;
|
||||
use dioxus_desktop::tao::event::Event as WryEvent;
|
||||
use dioxus_desktop::tao::event::WindowEvent;
|
||||
use dioxus_desktop::use_wry_event_handler;
|
||||
use dioxus_desktop::{Config, WindowCloseBehaviour};
|
||||
|
||||
fn main() {
|
||||
LaunchBuilder::desktop()
|
||||
|
||||
@@ -14,7 +14,7 @@ fn app() -> Element {
|
||||
oninput: move |e| {
|
||||
if let Ok(new_zoom) = e.value().parse::<f64>() {
|
||||
level.set(new_zoom);
|
||||
dioxus_desktop::window().webview.zoom(new_zoom);
|
||||
dioxus::desktop::window().webview.zoom(new_zoom);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user