/opt/canhelp/apps/web/src/components
Edit: /opt/canhelp/apps/web/src/components/FavoriteSpecialistButton.tsx (1464B)
'use client'
import { useState } from 'react'
import { useSession } from '@/lib/auth'
import { addSpecialistFavorite, removeSpecialistFavorite } from '@/lib/api'
interface Props {
specialistId: string
initialFavorite?: boolean
favoriteLabel: string
unfavoriteLabel: string
}
export function FavoriteSpecialistButton({ specialistId, initialFavorite = false, favoriteLabel, unfavoriteLabel }: Props) {
const { data: session } = useSession()
const [isFavorite, setIsFavorite] = useState(initialFavorite)
const [loading, setLoading] = useState(false)
if (!session) return null
async function toggle(e: React.MouseEvent) {
e.preventDefault()
e.stopPropagation()
setLoading(true)
try {
if (isFavorite) {
await removeSpecialistFavorite(specialistId)
setIsFavorite(false)
} else {
await addSpecialistFavorite(specialistId)
setIsFavorite(true)
}
} catch {}
setLoading(false)
}
return (
)
}