Make use_future take an impl FnMut + 'static, don't include router prelude when we don't need to
This commit is contained in:
22 files changed
+12
-25
No files matched your search
@@ -7,7 +7,7 @@ fn main() {
|
||||
fn app() -> Element {
|
||||
let mut state = use_signal(|| 0);
|
||||
|
||||
use_future(|| async move {
|
||||
use_future(move || async move {
|
||||
loop {
|
||||
state += 1;
|
||||
tokio::time::sleep(std::time::Duration::from_millis(1)).await;
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
//! ```
|
||||
|
||||
use dioxus::prelude::*;
|
||||
use dioxus_router::prelude::*;
|
||||
|
||||
fn main() {
|
||||
let config = LaunchBuilder::fullstack();
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
|
||||
#![allow(unused)]
|
||||
use dioxus::prelude::*;
|
||||
use dioxus::router::prelude::*;
|
||||
use dioxus_fullstack::{launch, prelude::*};
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#![allow(missing_docs)]
|
||||
use crate::{use_hook_did_run, use_signal};
|
||||
use crate::{use_callback, use_hook_did_run, use_signal};
|
||||
use dioxus_core::{
|
||||
prelude::{spawn, use_drop, use_hook},
|
||||
Task,
|
||||
@@ -11,15 +11,16 @@ use std::future::Future;
|
||||
/// A hook that allows you to spawn a future
|
||||
///
|
||||
/// Does not regenerate the future when dependencies change.
|
||||
pub fn use_future<F>(mut future: impl FnMut() -> F) -> UseFuture
|
||||
pub fn use_future<F>(future: impl FnMut() -> F + 'static) -> UseFuture
|
||||
where
|
||||
F: Future + 'static,
|
||||
{
|
||||
let mut callback = use_callback(future);
|
||||
let mut state = use_signal(|| UseFutureState::Pending);
|
||||
|
||||
// Create the task inside a copyvalue so we can reset it in-place later
|
||||
let task = use_hook(|| {
|
||||
let fut = future();
|
||||
let fut = callback.call();
|
||||
CopyValue::new(spawn(async move {
|
||||
fut.await;
|
||||
state.set(UseFutureState::Complete);
|
||||
|
||||
@@ -169,7 +169,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
fn app() -> Element {
|
||||
let mut count = use_signal(|| 0);
|
||||
|
||||
use_future(|| async move {
|
||||
use_future(move || async move {
|
||||
loop {
|
||||
tokio::time::sleep(std::time::Duration::from_secs(1)).await;
|
||||
count += 1;
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
use dioxus::prelude::*;
|
||||
use dioxus::router::prelude::*;
|
||||
use std::str::FromStr;
|
||||
|
||||
#[cfg(feature = "liveview")]
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
use std::time::Duration;
|
||||
|
||||
use dioxus::prelude::*;
|
||||
use dioxus::router::prelude::*;
|
||||
|
||||
use dioxus_ssr::incremental::{DefaultRenderer, IncrementalRendererConfig};
|
||||
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
use dioxus::prelude::*;
|
||||
use dioxus_router::prelude::*;
|
||||
use std::str::FromStr;
|
||||
|
||||
fn prepare<R: Routable>() -> String
|
||||
|
||||
@@ -7,7 +7,7 @@ fn main() {
|
||||
fn app() -> Element {
|
||||
let mut signal = use_signal(|| 0);
|
||||
|
||||
use_future(|| async move {
|
||||
use_future(move || async move {
|
||||
loop {
|
||||
tokio::time::sleep(std::time::Duration::from_secs(1)).await;
|
||||
signal += 1;
|
||||
|
||||
Reference in new issue
Block a user