Loading screens & layouts

This commit is contained in:
Sebastien Castiel
2023-12-06 12:22:24 -05:00
parent ed55c696cd
commit 6c4ced0f79
12 changed files with 104 additions and 37 deletions

View File

@@ -0,0 +1,23 @@
import { Button } from '@/components/ui/button'
import { Loader2 } from 'lucide-react'
import { PropsWithChildren, ReactNode } from 'react'
import { useFormState } from 'react-hook-form'
type Props = PropsWithChildren<{
loadingContent: ReactNode
}>
export function SubmitButton({ children, loadingContent }: Props) {
const { isSubmitting } = useFormState()
return (
<Button type="submit" disabled={isSubmitting}>
{isSubmitting ? (
<>
<Loader2 className="w-4 h-4 mr-2 animate-spin" /> {loadingContent}
</>
) : (
children
)}
</Button>
)
}