pub struct SubmitTicket {
_marker: PhantomData<()>,
function_component: FunctionComponent<Self>,
}Expand description
A component that provides a form for users to submit new tickets.
This component allows users to input details such as category, subject (betreff),
description, and room number for a new support ticket. It includes client-side
validation for the room number and interacts with the backend API to create the ticket.
§State
Uses use_state hooks to manage:
category,betreff,description: Values of the form input fields.room,room_input: The parsed and raw room numbers, respectively.status: To display messages about submission success or errors.
§Room Input Handling
The room_change callback handles parsing the room input:
- Supports numerical room numbers (e.g., “101”).
- Supports ‘K’ prefixed rooms (e.g., “K1” parses to -1).
- Supports ‘D’ prefixed rooms (e.g., “D1” parses to 1001).
- Validates the parsed room against the
VALID_ROOMSconstant.
§Form Submission
- Prevents default form submission behavior.
- Performs validation for room number and presence in
VALID_ROOMS. - Constructs a
TicketCreateSchemepayload. - Sends a POST request to
/api/tickets/create. - Updates the
statusstate based on the API response.
§Example
html! {
<SubmitTicket />
}Fields§
§_marker: PhantomData<()>§function_component: FunctionComponent<Self>Trait Implementations§
Source§impl BaseComponent for SubmitTicketwhere
Self: 'static,
impl BaseComponent for SubmitTicketwhere
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 SubmitTicket
impl Debug for SubmitTicket
Auto Trait Implementations§
impl !Freeze for SubmitTicket
impl !RefUnwindSafe for SubmitTicket
impl !Send for SubmitTicket
impl !Sync for SubmitTicket
impl Unpin for SubmitTicket
impl !UnwindSafe for SubmitTicket
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.