dioxus_spring/use_spring_signal.rs
1use crate::{use_spring_ref, UseSpringRef};
2use dioxus::prelude::*;
3use interpolation::Lerp;
4
5/// Hook to create an animated signal from an initial value.
6pub fn use_spring_signal<V>(from: V) -> (Signal<V>, UseSpringRef<V>)
7where
8 V: PartialEq + Lerp<Scalar = f32> + Clone + 'static,
9{
10 let from_clone = from.clone();
11 let mut output = use_signal(move || from_clone);
12
13 let spring_ref = use_spring_ref(from, move |value| output.set(value));
14
15 (output, spring_ref)
16}