pub struct Input { /* private fields */ }Expand description
custom_input_component A custom input component that handles user input and validation.
§Arguments
props- The properties of the component.input_valid_handle- A handle to track the validity of the input.aria_invalid- A string representing the ‘aria-invalid’ attribute value for accessibility. Defaults to “true”.aria_required- A string representing the ‘aria-required’ attribute value for accessibility. Defaults to “true”.input_type- The type of the input element. Defaults to “text”.input_ref- A reference to the input element.input_handle- A handle to set the value of the input.validate_function- A callback function to validate the input value.
§Returns
(Html): An HTML representation of the input component.
§Examples
// Example of using the custom_input_component
use regex::Regex;
use serde::{Deserialize, Serialize};
use input_yew::CustomInput;
use yew::prelude::*;
#[derive(Debug, Default, Clone, Serialize, Deserialize)]
struct LoginUserSchema {
email: String,
password: String,
}
fn validate_email(email: String) -> bool {
let pattern = Regex::new(r"^[^ ]+@[^ ]+\.[a-z]{2,3}$").unwrap();
pattern.is_match(&email)
}
fn validate_password(password: String) -> bool {
!&password.is_empty()
}
#[function_component(LoginFormOne)]
pub fn login_form_one() -> Html {
let error_handle = use_state(String::default);
let error = (*error_handle).clone();;
let email_valid_handle = use_state(|| true);
let email_valid = (*email_valid_handle).clone();;
let password_valid_handle = use_state(|| true);
let password_valid = (*password_valid_handle).clone();;
let input_email_ref = use_node_ref();
let input_email_handle = use_state(String::default);
let input_email = (*input_email_handle).clone();;
let input_password_ref = use_node_ref();
let input_password_handle = use_state(String::default);
let input_password = (*input_password_handle).clone();;
let onsubmit = Callback::from(move |event: SubmitEvent| {
event.prevent_default();
let email_ref = input_password.clone();
let password_ref = input_password.clone();
let error_handle = error_handle.clone();
// Custom logic for your endpoint goes here: `spawn_local`
});
html! {
<div class="form-one-content" role="main" aria-label="Sign In Form">
<div class="text">
<h2>{"Sign In"}</h2>
if !error.is_empty() {
<div class="error">{error}</div>
}
</div>
<form action="#" aria-label="Sign In Form" onsubmit={onsubmit}>
<CustomInput
input_type={"text"}
input_handle={input_email_handle}
name={"email"}
input_ref={input_email_ref}
input_placeholder={"Email"}
icon_class={"fas fa-user"}
error_message={"Enter a valid email address"}
form_input_field_class={"form-one-field"}
form_input_error_class={"error-txt"}
required={true}
input_valid_handle={email_valid_handle}
validate_function={validate_email}
/>
<CustomInput
input_type={"password"}
input_handle={input_password_handle}
name={"password"}
input_ref={input_password_ref}
input_placeholder={"Password"}
icon_class={"fas fa-lock"}
error_message={"Password can't be blank!"}
form_input_field_class={"form-one-field"}
form_input_error_class={"error-txt"}
required={true}
input_valid_handle={password_valid_handle}
validate_function={validate_password}
eye_active={"fa fa-eye"}
eye_disabled={"fa fa-eye-slash"}
/>
<div class="form-one-forgot-pass">
<a href="#" aria-label="Forgot Password?">{"Forgot Password?"}</a>
</div>
<button type="submit">{"Sign in"}</button>
<div class="sign-up">
{"Not a member?"}
<a href="#" aria-label="Sign up now">{"Sign up now"}</a>
</div>
</form>
</div>
}
}Trait Implementations§
Source§impl BaseComponent for CustomInputwhere
CustomInput: 'static,
impl BaseComponent for CustomInputwhere
CustomInput: 'static,
Source§type Properties = Props
type Properties = Props
The Component’s Properties.
Source§fn create(ctx: &Context<CustomInput>) -> CustomInput
fn create(ctx: &Context<CustomInput>) -> CustomInput
Creates a component.
Source§fn update(
&mut self,
_ctx: &Context<CustomInput>,
_msg: <CustomInput as BaseComponent>::Message,
) -> bool
fn update( &mut self, _ctx: &Context<CustomInput>, _msg: <CustomInput as BaseComponent>::Message, ) -> bool
Updates component’s internal state.
Source§fn changed(
&mut self,
_ctx: &Context<CustomInput>,
_old_props: &<CustomInput as BaseComponent>::Properties,
) -> bool
fn changed( &mut self, _ctx: &Context<CustomInput>, _old_props: &<CustomInput as BaseComponent>::Properties, ) -> bool
React to changes of component properties.
Source§fn view(&self, ctx: &Context<CustomInput>) -> Result<VNode, RenderError>
fn view(&self, ctx: &Context<CustomInput>) -> Result<VNode, RenderError>
Returns a component layout to be rendered.
Source§fn rendered(&mut self, _ctx: &Context<CustomInput>, _first_render: bool)
fn rendered(&mut self, _ctx: &Context<CustomInput>, _first_render: bool)
Notified after a layout is rendered.
Source§fn destroy(&mut self, _ctx: &Context<CustomInput>)
fn destroy(&mut self, _ctx: &Context<CustomInput>)
Notified before a component is destroyed.
Source§fn prepare_state(&self) -> Option<String>
fn prepare_state(&self) -> Option<String>
Prepares the server-side state.
Source§impl Debug for CustomInput
impl Debug for CustomInput
Source§impl FunctionProvider for CustomInput
impl FunctionProvider for CustomInput
Source§type Properties = Props
type Properties = Props
Properties for the Function Component.
Source§fn run(
ctx: &mut HookContext,
props: &<CustomInput as FunctionProvider>::Properties,
) -> Result<VNode, RenderError>
fn run( ctx: &mut HookContext, props: &<CustomInput as FunctionProvider>::Properties, ) -> Result<VNode, RenderError>
Auto Trait Implementations§
impl !Freeze for CustomInput
impl !RefUnwindSafe for CustomInput
impl !Send for CustomInput
impl !Sync for CustomInput
impl !UnwindSafe for CustomInput
impl Unpin for CustomInput
impl UnsafeUnpin for CustomInput
Blanket Implementations§
impl<Token, Builder, How> AllPropsFor<Builder, How> for Tokenwhere
Builder: Buildable<Token>,
<Builder as Buildable<Token>>::WrappedToken: HasAllProps<<Builder as Buildable<Token>>::Output, How>,
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> HasAllProps<(), T> for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoPropValue<Option<T>> for T
impl<T> IntoPropValue<Option<T>> for T
Source§fn into_prop_value(self) -> Option<T>
fn into_prop_value(self) -> Option<T>
Convert
self to a value of a Properties struct.Source§impl<T> IntoPropValue<T> for T
impl<T> IntoPropValue<T> for T
Source§fn into_prop_value(self) -> T
fn into_prop_value(self) -> T
Convert
self to a value of a Properties struct.