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} */