'use client' import { KeyRoundIcon } from 'lucide-react' import { useActionState, useEffect } from 'react' import { toast } from 'sonner' import { Button } from '@/components/ui/button' import { Spinner } from '@/components/ui/Spinner' import { PLACEHOLDER_RESET_MESSAGE } from '@/lib/schemas/advisor' import type { CampaignFormActionState } from '@/utilities/campaignFormActionError' type AdvisorPasswordResetButtonProps = { advisorId: number disabled: boolean /** `icon` is the compact row action; `block` is the labelled button plus hint. */ layout?: 'block' | 'icon' /** Names the advisor for screen readers in the `icon` layout. */ accessibleName?: string formAction: ( state: CampaignFormActionState, formData: FormData, ) => Promise } export const AdvisorPasswordResetButton = ({ advisorId, disabled, layout = 'block', accessibleName = 'Enviar link de senha', formAction, }: AdvisorPasswordResetButtonProps) => { const [state, submitAction, isPending] = useActionState(formAction, {}) useEffect(() => { if (state.status === 'success') { toast.success(state.message ?? 'Link enviado.') return } if (state.message && state.status !== 'success') { toast.error(state.message) } }, [state.message, state.status]) if (layout === 'icon') { return (
) } return (
{disabled ? (

{PLACEHOLDER_RESET_MESSAGE}

) : (

Envia um e-mail com link para o assessor definir a senha de acesso.

)}
) }