pub struct UserByID {
_marker: PhantomData<()>,
function_component: FunctionComponent<Self>,
}Expand description
A component for displaying, updating, and deleting a single user by their ID.
This component fetches a specific user’s details from the backend based on the
id provided in its UserProps. It allows administrators to view, modify
(first name, last name, username, admin status, and password), and delete user accounts.
§Props
id: Thei16ID of the user to fetch and display.
§State
Uses use_state hooks to manage:
user: The fetchedFilteredUserdata, if available.error: Any error message encountered during initial user data fetching.loading: A boolean indicating if initial user data is being fetched.first_name,last_name,username,make_admin,new_pwd: States for the update form fields, pre-filled with current user data.saving,save_error,save_success: States for the user update operation.deleting,delete_error: States for the user deletion operation.
§Functionality
- Initial Data Fetching: On component mount or
idchange, fetches user data from/api/users/:id. - Form Initialization: Populates the update form fields with the fetched user’s current details once loaded.
- User Update: The update form sends a PATCH request to
/api/users/:idwith aUserUpdateSchemepayload. On success, updates the displayed user data and shows a success message. - User Deletion: Includes a “Delete” button that, after user confirmation, sends
a DELETE request to
/api/users/:id. On success, clears the user from display. - Error Handling: Displays error messages for various API and network issues.
§Example
html! {
<UserByID id={42} />
}Fields§
§_marker: PhantomData<()>§function_component: FunctionComponent<Self>Trait Implementations§
Source§impl BaseComponent for UserByIDwhere
Self: 'static,
impl BaseComponent for UserByIDwhere
Self: 'static,
Source§type Properties = UserProps
type Properties = UserProps
The Component’s Properties.
Source§fn update(&mut self, _ctx: &Context<Self>, _msg: Self::Message) -> bool
fn update(&mut self, _ctx: &Context<Self>, _msg: Self::Message) -> bool
Updates component’s internal state.
Source§fn changed(
&mut self,
_ctx: &Context<Self>,
_old_props: &Self::Properties,
) -> bool
fn changed( &mut self, _ctx: &Context<Self>, _old_props: &Self::Properties, ) -> bool
React to changes of component properties.
Source§fn rendered(&mut self, _ctx: &Context<Self>, _first_render: bool)
fn rendered(&mut self, _ctx: &Context<Self>, _first_render: bool)
Notified after a layout is rendered.
Source§fn prepare_state(&self) -> Option<String>
fn prepare_state(&self) -> Option<String>
Prepares the server-side state.
Auto Trait Implementations§
impl !Freeze for UserByID
impl !RefUnwindSafe for UserByID
impl !Send for UserByID
impl !Sync for UserByID
impl Unpin for UserByID
impl !UnwindSafe for UserByID
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<T> IntoPropValue<Option<T>> for T
impl<T> IntoPropValue<Option<T>> for T
§fn into_prop_value(self) -> Option<T>
fn into_prop_value(self) -> Option<T>
Convert
self to a value of a Properties struct.§impl<T> IntoPropValue<T> for T
impl<T> IntoPropValue<T> for T
§fn into_prop_value(self) -> T
fn into_prop_value(self) -> T
Convert
self to a value of a Properties struct.