'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 { routes } from '@/lib/routing/RouteConfig'; import { ResetPasswordViewData } from '@/lib/builders/view-data/types/ResetPasswordViewData'; interface ResetPasswordTemplateProps { viewData: 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({ viewData, formActions, uiState, mutationState, }: ResetPasswordTemplateProps) { 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)} position="absolute" right="3" top="50%" zIndex={10} bg="transparent" borderStyle="none" cursor="pointer" > {viewData.formState.fields.newPassword.error && ( {viewData.formState.fields.newPassword.error} )} {/* Confirm Password */} Confirm Password formActions.setShowConfirmPassword(!uiState.showConfirmPassword)} position="absolute" right="3" top="50%" zIndex={10} bg="transparent" borderStyle="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 ); }