Skip to main content

pryty_rustbrowser/
lib.rs

1// Example
2//
3// ```
4// use pryty_rustbrowser::*;
5//
6// fn App() -> Element {
7//     let rec = use_recording();
8//     let (name, set_name) = use_storage("username".to_string());
9//
10//     rsx! {
11//         button { onclick: move |_| rec.start(), "录音" }
12//         input { value: "{name}", oninput: move |e| set_name(e.value()) }
13//     }
14// }
15// ```
16// src/lib.rs
17mod audio;
18mod storage;
19mod clipboard;
20
21pub use audio::use_recording;
22pub use storage::use_storage;
23pub use clipboard::use_clipboard;
24pub mod camera;
25pub use camera::use_camera;
26
27/*
28use dioxus::prelude::*;
29use pryty_rustbrowser::{use_camera, use_clipboard, use_recording, use_storage};
30
31fn main() {
32    dioxus::launch(App);
33}
34
35#[component]
36fn App() -> Element {
37    let camera = use_camera();
38    let recording = use_recording();
39    let (name, set_name) = use_storage("username".to_string());
40    let clipboard = use_clipboard();
41
42    let on_copy = {
43        let name = name.clone();
44        move |_| {
45            clipboard.write(&name.read());
46        }
47    };
48
49    rsx! {
50        div {
51            h1 { "pryty-rustbrowser demo" }
52
53            div {
54                input {
55                    value: "{name}",
56                    oninput: move |e| set_name.call(e.value())
57                }
58                button { onclick: on_copy, "Copy Username" }
59            }
60
61            div {
62                button {
63                    onclick: move |_| camera.start.call(()),
64                    disabled: *camera.active.read(),
65                    "Start Camera"
66                }
67                button {
68                    onclick: move |_| camera.stop.call(()),
69                    disabled: !*camera.active.read(),
70                    "Stop Camera"
71                }
72                p { "camera active: {camera.active.read()}" }
73            }
74
75            div {
76                button {
77                    onclick: move |_| recording.start.call(()),
78                    disabled: *recording.active.read(),
79                    "Start Recording"
80                }
81                button {
82                    onclick: move |_| recording.stop.call(()),
83                    disabled: !*recording.active.read(),
84                    "Stop Recording"
85                }
86                p { "recording active: {recording.active.read()}" }
87                p {
88                    "bytes: {
89                        recording
90                            .data
91                            .read()
92                            .as_ref()
93                            .map(|v| v.len().to_string())
94                            .unwrap_or_else(|| \"0\".to_string())
95                    }"
96                }
97            }
98        }
99    }
100} */