User management completed. Leptos upgraded to 0.5.0.
This commit is contained in:
@@ -1,16 +1,17 @@
|
||||
use leptos::*;
|
||||
use crate::backend::data::User;
|
||||
use crate::backend::user::UpdateProfile;
|
||||
use crate::backend::user::{get_user, UpdateProfile};
|
||||
use crate::components::data_form::DataForm;
|
||||
use crate::components::modal_box::DialogOpener;
|
||||
|
||||
#[component]
|
||||
pub fn ProfileEdit(user: ReadSignal<User>, opener: DialogOpener) -> impl IntoView {
|
||||
let update_user = create_server_action::<UpdateProfile>();
|
||||
let logged_in = create_resource(||(), move |_| get_user());
|
||||
|
||||
view! {
|
||||
<DataForm opener=opener action=update_user title="Edit profile">
|
||||
<input type="hidden" value={move || user.get().login} name="user[login]"/>
|
||||
<input type="hidden" prop:value={move || user.get().login} name="user[login]"/>
|
||||
<div class="row">
|
||||
<div class="col mb-3">
|
||||
<label for="name" class="form-label">"Full name"</label>
|
||||
@@ -50,6 +51,31 @@ pub fn ProfileEdit(user: ReadSignal<User>, opener: DialogOpener) -> impl IntoVie
|
||||
<label class="form-check-label" for="getMail">"Get emails"</label>
|
||||
</div>
|
||||
</div>
|
||||
<Suspense fallback=move || view! {<div></div>}>
|
||||
<div class="row" style={move || {
|
||||
logged_in.get().map(|u| match u {
|
||||
Ok(usr) => {
|
||||
let usr = usr.unwrap_or_default();
|
||||
if usr.login == user.get().login && !usr.login.is_empty() { "display: none" }
|
||||
else {""}
|
||||
}
|
||||
Err(_) => ""
|
||||
})
|
||||
} }>
|
||||
<div class="col mb-3">
|
||||
<input
|
||||
class="form-check-input"
|
||||
type="checkbox"
|
||||
id="admin"
|
||||
prop:value={move || if user.get().admin {"true"} else {"false"}}
|
||||
prop:checked={move || user.get().admin}
|
||||
name="user[admin]"
|
||||
//disabled
|
||||
/>
|
||||
<label class="form-check-label" for="admin">"Admin"</label>
|
||||
</div>
|
||||
</div>
|
||||
</Suspense>
|
||||
</DataForm>
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user