mirror of
https://github.com/tomru/pfadi-bussle.git
synced 2026-03-03 06:27:11 +01:00
add spinner to button
This commit is contained in:
@@ -3,6 +3,7 @@ import Contact from './contact'
|
||||
import BookProvider, { BookContext } from '../../context/book'
|
||||
import DateSelect from './dateSelect'
|
||||
import Reason from './reason'
|
||||
import Button from '../button'
|
||||
|
||||
function BookForm() {
|
||||
const { onSubmit, state, forgetData } = useContext(BookContext)
|
||||
@@ -32,9 +33,9 @@ function BookForm() {
|
||||
)}
|
||||
<Contact />
|
||||
<div className="flex items-end">
|
||||
<button type="submit" disabled={postData} className="btn btn-blue">
|
||||
<Button type="submit" loading={!!postData} disabled={postData}>
|
||||
{postData ? 'Speichern...' : 'Absenden'}
|
||||
</button>
|
||||
</Button>
|
||||
{postDataError && (
|
||||
<div className="error-message flex-grow">{postDataError}</div>
|
||||
)}
|
||||
@@ -50,4 +51,4 @@ export default function Book() {
|
||||
<BookForm />
|
||||
</BookProvider>
|
||||
)
|
||||
}
|
||||
}
|
||||
13
components/button.tsx
Normal file
13
components/button.tsx
Normal file
@@ -0,0 +1,13 @@
|
||||
const Button = ({ children, loading = false, ...rest }) => {
|
||||
return (<button className="btn btn-blue" {...rest}>
|
||||
{loading &&
|
||||
<svg className="inline animate-spin -ml-1 mr-3 h-4 w-4 text-white" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24">
|
||||
<circle className="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle>
|
||||
<path className="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path>
|
||||
</svg>
|
||||
}
|
||||
{children}
|
||||
</button>);
|
||||
}
|
||||
|
||||
export default Button;
|
||||
Reference in New Issue
Block a user