Compare commits
4 commits
2e2bc46069
...
2e8bfb90cf
Author | SHA1 | Date | |
---|---|---|---|
Yash Karandikar | 2e8bfb90cf | ||
Yash Karandikar | 6a3c62059e | ||
Yash Karandikar | a35bdb4fb1 | ||
Yash Karandikar | cc7a9affe7 |
|
@ -15,7 +15,7 @@ Make sure to set the BUGSPRAY_DB environment variable so that bugspray can popul
|
|||
TODO:
|
||||
- [x] User registration
|
||||
- [x] User login
|
||||
- [ ] Navbar
|
||||
- [x] Navbar
|
||||
- [ ] Link issues to users
|
||||
- [ ] Comments
|
||||
- [ ] Open/Close issues
|
||||
|
|
|
@ -86,17 +86,42 @@ pub enum AppRoutes {
|
|||
}
|
||||
|
||||
fn switch<G: Html>(route: ReadSignal<AppRoutes>) -> View<G> {
|
||||
let logged_in = if G::IS_BROWSER {
|
||||
local_storage::getItem("token").is_some()
|
||||
} else {
|
||||
false
|
||||
};
|
||||
view! {
|
||||
div(class="wrapper") {
|
||||
(match route.get().as_ref() {
|
||||
AppRoutes::Index => view! {
|
||||
h1(class="text-align-center") { "Bugspray" }
|
||||
a(href="/add_issue") { "+ New Issue" }
|
||||
(if !logged_in {
|
||||
view! {
|
||||
a(href="/register") { "Register" }
|
||||
" | "
|
||||
a(href="/login") { "Log in" }
|
||||
}
|
||||
} else {
|
||||
view! {
|
||||
a(href="/add_issue") { "+ New Issue" }
|
||||
}
|
||||
})
|
||||
HomeScreen()
|
||||
},
|
||||
AppRoutes::IssueDetail(index) => view! {
|
||||
h1(class="text-align-center") { "Bugspray" }
|
||||
a(href="/add_issue") { "+ New Issue" }
|
||||
(if !logged_in {
|
||||
view! {
|
||||
a(href="/register") { "Register" }
|
||||
" | "
|
||||
a(href="/login") { "Log in" }
|
||||
}
|
||||
} else {
|
||||
view! {
|
||||
a(href="/add_issue") { "+ New Issue" }
|
||||
}
|
||||
})
|
||||
IssueDetail(*index)
|
||||
},
|
||||
AppRoutes::IssueCreate => view! {
|
||||
|
@ -115,6 +140,18 @@ fn switch<G: Html>(route: ReadSignal<AppRoutes>) -> View<G> {
|
|||
|
||||
_ => view! {
|
||||
h1(class="text-align-center") { "Bugspray" }
|
||||
(if !logged_in {
|
||||
view! {
|
||||
a(href="/register") { "Register" }
|
||||
" | "
|
||||
a(href="/login") { "Log in" }
|
||||
br {}
|
||||
}
|
||||
} else {
|
||||
view! {
|
||||
a(href="/add_issue") { "+ New Issue" }
|
||||
}
|
||||
})
|
||||
"404 Not Found"
|
||||
},
|
||||
})
|
||||
|
@ -364,6 +401,10 @@ pub fn register() -> View<G> {
|
|||
div(style="justify-content: right") {
|
||||
button(on:click=on_click) { "Register" }
|
||||
}
|
||||
|
||||
small {
|
||||
a(href="/login") { "Already have an account?" }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -473,6 +514,10 @@ pub fn login() -> View<G> {
|
|||
div(style="justify-content: right") {
|
||||
button(on:click=on_click) { (text.get()) }
|
||||
}
|
||||
|
||||
small {
|
||||
a(href="/register") { "Don't have an account?" }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -482,8 +527,12 @@ pub fn issue_detail(index: i64) -> View<G> {
|
|||
let issue: Signal<Issue> = Signal::new(Issue::default());
|
||||
if G::IS_BROWSER {
|
||||
wasm_bindgen_futures::spawn_local(cloned!(issue => async move {
|
||||
let resp = reqwasm::http::Request::get(&format!("/api/issues/{}", index)).send().await.unwrap().text().await.unwrap();
|
||||
let parsed: Issue = serde_json::from_str(&resp).unwrap();
|
||||
let resp = reqwasm::http::Request::get(&format!("/api/issues/{}", index)).send().await.unwrap();
|
||||
if resp.status() == 404 {
|
||||
setLocation("/not_found"); // lmao
|
||||
}
|
||||
let text = resp.text().await.unwrap();
|
||||
let parsed: Issue = serde_json::from_str(&text).unwrap();
|
||||
issue.set(parsed);
|
||||
}));
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue