'use client'; import React from 'react'; import { Lock, Eye, EyeOff, AlertCircle, Flag, Shield, CheckCircle2, ArrowLeft, } from 'lucide-react'; import { Card } from '@/ui/Card'; import { Button } from '@/ui/Button'; import { Input } from '@/ui/Input'; import { Heading } from '@/ui/Heading'; import { Box } from '@/ui/Box'; import { Stack } from '@/ui/Stack'; import { Text } from '@/ui/Text'; import { Link } from '@/ui/Link'; import { Surface } from '@/ui/Surface'; import { Icon } from '@/ui/Icon'; import { LoadingSpinner } from '@/ui/LoadingSpinner'; import { ResetPasswordViewData } from '@/lib/builders/view-data/types/ResetPasswordViewData'; interface ResetPasswordTemplateProps extends ResetPasswordViewData { formActions: { handleChange: (e: React.ChangeEvent) => void; handleSubmit: (e: React.FormEvent) => Promise; setShowSuccess: (show: boolean) => void; setShowPassword: (show: boolean) => void; setShowConfirmPassword: (show: boolean) => void; }; uiState: { showPassword: boolean; showConfirmPassword: boolean; }; mutationState: { isPending: boolean; error: string | null; }; } export function ResetPasswordTemplate(props: ResetPasswordTemplateProps) { const { formActions, uiState, mutationState, ...viewData } = props; return ( {/* Background Pattern */} {/* Header */} Reset Password Create a new secure password for your account {/* Background accent */} {!viewData.showSuccess ? (
{/* New Password */} New Password formActions.setShowPassword(!uiState.showPassword)} style={{ position: 'absolute', right: '0.75rem', top: '50%', transform: 'translateY(-50%)', zIndex: 10, backgroundColor: 'transparent', border: 'none', cursor: 'pointer' }} > {viewData.formState.fields.newPassword.error && ( {viewData.formState.fields.newPassword.error} )} {/* Confirm Password */} Confirm Password formActions.setShowConfirmPassword(!uiState.showConfirmPassword)} style={{ position: 'absolute', right: '0.75rem', top: '50%', transform: 'translateY(-50%)', zIndex: 10, backgroundColor: 'transparent', border: 'none', cursor: 'pointer' }} > {viewData.formState.fields.confirmPassword.error && ( {viewData.formState.fields.confirmPassword.error} )} {/* Error Message */} {mutationState.error && ( {mutationState.error} )} {/* Submit Button */} {/* Back to Login */} Back to Login
) : ( {viewData.successMessage} Your password has been successfully reset )}
{/* Trust Indicators */} Secure password reset Encrypted transmission {/* Footer */} Need help?{' '} Contact support
); }