Hi I create a login form using react-bootstrap, mdbootstrap and formik. I want a login spinner to be shown each time user presses login button. I've figured out how to do it however I have a trouble with placing the bootstrap spinner in the same line as the login button
I want to achieve something like this
Here is my code
render() {
return (
<Formik
validationSchema={schema}
onSubmit={this.handleSubmit}
initialValues={{username: '', password: ''}}>
{
formProps => (
<Form name='form' onSubmit={formProps.handleSubmit}>
<Form.Group noValidate controlId="loginForm.username">
<Form.Label>Adres e-mail</Form.Label>
<Form.Control
type="text"
name="username"
value={formProps.values.username}
onChange={e => {
formProps.handleChange(e);
const {username} = formProps.initialValues;
if (formProps.values.username === username) {
formProps.setFieldTouched('username', false)
}
}}
isInvalid={!!formProps.touched.username && !!formProps.errors.username}
/>
<Form.Control.Feedback type="invalid">
{formProps.errors.username}
</Form.Control.Feedback>
</Form.Group>
<Form.Group controlId="loginForm.password">
<Form.Label>Hasło</Form.Label>
<Form.Control
type="password"
name="password"
value={formProps.values.password}
onChange={e => {
formProps.handleChange(e);
const {password} = formProps.initialValues;
if (formProps.values.password === password) {
formProps.setFieldTouched('password', false)
}
}}
isInvalid={!!formProps.touched.password && !!formProps.errors.password}
>
</Form.Control>
<Form.Control.Feedback type="invalid">
{formProps.errors.password}
</Form.Control.Feedback>
</Form.Group>
<Form.Group controlId="loginForm.loginBtn">
<div className="d-inline-block">
<Button variant="primary" type="submit">
Zaloguj się
</Button>
<Spinner animation="border" variant="info" />
</div>
</Form.Group>
</Form>
)
}
</Formik>
)
}
EDIT: coeden: codesandbox.io/s/quirky-blackburn-z7gtt