import {useState} from 'react'
import {useLiveRegion} from 'web/components/live-region'
function LikeButton({profileId: _profileId}: {profileId: string}) {
const [liked, setLiked] = useState(false)
const {announce} = useLiveRegion()
const handleLike = () => {
const newLiked = !liked
setLiked(newLiked)
if (newLiked) {
announce('Profile liked', 'polite')
} else {
announce('Like removed', 'polite')
}
}
return (
)
}
function MessageSentNotification() {
const {announce} = useLiveRegion()
const handleSend = () => {
announce('Message sent successfully', 'polite')
}
return
}
function ErrorAlert({message}: {message: string}) {
const {announce} = useLiveRegion()
const handleRetry = () => {
announce('Retrying connection...', 'polite')
}
return (
)
}
function FormSubmission() {
const [status, setStatus] = useState<'idle' | 'submitting' | 'success' | 'error'>('idle')
const {announce} = useLiveRegion()
const handleSubmit = async () => {
setStatus('submitting')
announce('Submitting form, please wait', 'polite')
try {
await new Promise((resolve) => setTimeout(resolve, 1000))
setStatus('success')
announce('Form submitted successfully', 'polite')
} catch {
setStatus('error')
announce('Form submission failed. Please try again.', 'assertive')
}
}
return (
)
}
function LoadingIndicator({isLoading}: {isLoading: boolean}) {
const {announce} = useLiveRegion()
if (isLoading) {
announce('Loading more results', 'polite')
}
return isLoading ? Loading... : null
}
export {ErrorAlert, FormSubmission, LikeButton, LoadingIndicator, MessageSentNotification}