Skip to content

Commit 9bc505e

Browse files
committed
breadcrumb component
1 parent 03967bd commit 9bc505e

File tree

4 files changed

+35
-42
lines changed

4 files changed

+35
-42
lines changed
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
use crate::i18n::{Language, get_translations};
2+
use crate::prelude::*;
3+
4+
#[derive(Props, Clone, PartialEq)]
5+
pub struct BreadcrumbProps {
6+
title: String,
7+
}
8+
9+
#[component]
10+
pub fn Breadcrumb(props: BreadcrumbProps) -> Element {
11+
let language = use_context::<Signal<Language>>();
12+
let t = get_translations(language());
13+
let nav = navigator();
14+
15+
rsx! {
16+
card { font_size: "larger",
17+
a {
18+
href: "#",
19+
onclick: move |_| {
20+
nav.push("/");
21+
},
22+
"{t.home}"
23+
}
24+
" ❭ {props.title}"
25+
}
26+
}
27+
}

rust/cryptonote/src/views/mod.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1+
mod breadcrumb;
12
mod home;
23
mod navbar;
34
mod share;
45
mod view;
56

7+
pub use breadcrumb::Breadcrumb;
68
pub use home::Home;
79
pub use navbar::Navbar;
810
pub use share::Share;

rust/cryptonote/src/views/share.rs

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
use crate::i18n::{Language, get_translations};
22
use crate::prelude::*;
3+
use crate::views::Breadcrumb;
34

45
#[component]
56
pub fn Share() -> Element {
@@ -33,16 +34,7 @@ pub fn Share() -> Element {
3334
});
3435

3536
rsx! {
36-
card {
37-
a {
38-
href: "#",
39-
onclick: move |_| {
40-
nav.push("/");
41-
},
42-
"{t.home}"
43-
}
44-
" > {t.share_title}"
45-
}
37+
Breadcrumb { title: t.share_title.to_string() }
4638
section {
4739

4840
if !url().is_empty() {

rust/cryptonote/src/views/view.rs

Lines changed: 4 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ use crate::crypto::decrypt_symmetric;
22
use crate::encoding::{NoteData, parse_url};
33
use crate::i18n::{Language, get_translations};
44
use crate::prelude::*;
5+
use crate::views::Breadcrumb;
56
use web_sys::window;
67

78
#[component]
@@ -97,18 +98,7 @@ pub fn View() -> Element {
9798

9899
rsx! {
99100
if is_encrypted() {
100-
card {
101-
big {
102-
a {
103-
href: "#",
104-
onclick: move |_| {
105-
nav.push("/");
106-
},
107-
"{t.home}"
108-
}
109-
" ❭ {t.encrypted_note}"
110-
}
111-
}
101+
Breadcrumb { title: t.encrypted_note.to_string() }
112102
section {
113103
fieldset {
114104
p { "{t.encrypted_note_desc}" }
@@ -176,16 +166,7 @@ pub fn View() -> Element {
176166
}
177167
}
178168
} else if let Some(content) = note_content() {
179-
card {
180-
a {
181-
href: "#",
182-
onclick: move |_| {
183-
nav.push("/");
184-
},
185-
"{t.home}"
186-
}
187-
" > {t.your_note_title}"
188-
}
169+
Breadcrumb { title: t.your_note_title.to_string() }
189170
section {
190171
fieldset {
191172
article {
@@ -227,16 +208,7 @@ pub fn View() -> Element {
227208
}
228209
}
229210
} else if let Some(err) = error_message() {
230-
card {
231-
a {
232-
href: "#",
233-
onclick: move |_| {
234-
nav.push("/");
235-
},
236-
"{t.home}"
237-
}
238-
" > {t.error_title}"
239-
}
211+
Breadcrumb { title: t.error_title.to_string() }
240212
section {
241213
p { "{err}" }
242214
p {

0 commit comments

Comments
 (0)