pub struct AllTickets {
_marker: PhantomData<()>,
function_component: FunctionComponent<Self>,
}Expand description
A component for fetching and displaying a list of all tickets.
This component retrieves all tickets from the backend and presents them as a list. It dynamically filters the displayed tickets based on the current user’s role: administrators see all tickets, while regular users only see tickets they created.
§State
Uses use_state hooks to manage:
tickets: A vector ofTicketstructs to store the fetched tickets.error: Any error message encountered during API calls.loading: A boolean indicating if data is currently being fetched.user: AnActiveUserstruct holding the current user’s ID and admin status.
§Functionality
- Fetch Tickets: On component mount, fetches all tickets from
/api/tickets. - Fetch Current User: Concurrently fetches the current user’s details from
/api/users/currentto determine theiruser_idandis_adminstatus. - Conditional Display:
- If
loadingis true, displays “Loading…”. - If an
erroroccurs, displays the error message. - Otherwise, renders a list of tickets.
- If
- Filtering:
- Administrators (
user.is_admin = true) see all tickets. - Regular users (
user.is_admin = false) only see tickets wheret.user_id == user.id.
- Administrators (
- Navigation: Each ticket in the list is a link to
crate::Route::TicketByIdfor viewing individual ticket details.
§Example
html! {
<AllTickets />
}Fields§
§_marker: PhantomData<()>§function_component: FunctionComponent<Self>Trait Implementations§
Source§impl BaseComponent for AllTicketswhere
Self: 'static,
impl BaseComponent for AllTicketswhere
Self: 'static,
Source§type Properties = ()
type Properties = ()
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.
Source§impl Debug for AllTickets
impl Debug for AllTickets
Auto Trait Implementations§
impl !Freeze for AllTickets
impl !RefUnwindSafe for AllTickets
impl !Send for AllTickets
impl !Sync for AllTickets
impl Unpin for AllTickets
impl !UnwindSafe for AllTickets
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.